Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Изучаем модуль Perl/Tk: Часть 1: Oсновы Perl/Tk

Адам Кормэни, администратор национального центра данных, Scientific Games Corporation
Являясь на сегодняшний день администратором национального центра данных, Адам Кормэни (Adam Cormany) в течение последних нескольких лет работал системным инженером UNIX, администратором UNIX и руководителем эксплуатации группы технического сопровождения корпорации Scientific Games. Адам более 10 лет вплотную занимался администрированием операционных систем AIX, Solaris и Red Hat Linux, и имеет статус сертифицированного специалиста IBM по eServer в области администрирования систем pSeries AIX. Помимо администрирования, Адам обладает глубокими знаниями в области написания shell-скриптов для командных оболочек BASH, CSH и KSH, а также умеет программировать на языках C, PHP и Perl.

Описание:  Хотя Web-интерфейсы на основе Perl имеют ряд ограничений, Perl является одним из наиболее распространенных языков Web-программирования. Пользователи UNIX®, имеющие опыт написания shell-скриптов, программирования на Perl или другом языке, могут вдохнуть новую жизнь в Web-интерфейсы на основе Perl при помощи модуля Perl/Tk.

Больше статей из этой серии

Дата:  10.02.2010
Уровень сложности:  средний
Активность:  10172 просмотров
Комментарии:  


Язык Perl обычно используется системными администраторами и разработчиками IBM® AIX®, он применяется почти на всех популярных Web-сайтах и в большинстве систем AIX. Хотя скрипты на Perl являются мощным средством, Web-интерфейс, созданный на их основе, не содержит графического оформления, и пользователю приходится набирать информацию с клавиатуры вместо того, чтобы пользоваться мышью, что может оказаться неприемлемым для заказчика. Эта проблема была решена с появлением в Perl модуля Tk. Модуль Tk позволяет администраторам и разработчикам быстро преобразовать скрипты в более удобный для пользователей вид, оснастив их графической оболочкой X11.

Что такое Perl?

Perl (Practical Extraction and Reporting Language - практический язык для извлечения данных и составления отчётов) был создан Ларри Уоллом в 1987 году для облегчения собственной работы по программированию. С тех пор Perl приобрел популярность во всем мире и стал важным инструментом для большинства администраторов и разработчиков.

Что такое модуль Perl/Tk?

Модуль Perl/Tk, также известный как pTk или ptk, - это модуль, разработанный для создания виджетов и других распространенных графических объектов, образующих графический интерфейс пользователя (GUI). Использование Perl/Tk для создания GUI делает работу с программой более удобной и помогает конечному пользователю сориентироваться в программе и ее функциях. Одним из важнейших преимуществ использования модуля Perl/Tk является кросс-платформенность - одно и то же GUI-приложение может использоваться в UNIX®, Linux®, Macintosh, Microsoft® Windows® или любой другой операционной системе, в которой установлен Perl с модулем Tk.

Где взять модуль Perl/Tk

Перед тем как написать приложение с использованием модуля Perl/Tk, необходимо иметь сам Perl и модуль Perl/Tk. Хотя Perl на большинстве компьютеров уже установлен, модуль Perl/Tk скорее всего отсутствует. Чтобы убедиться в том, что Perl установлен, введите команду perl --version. Если Perl не установлен, обратитесь к руководству по установке с сайта Perl (см. раздел Ресурсы).

После того как вы найдете Perl на своем компьютере или установите его, нужно определить, необходимо ли установить модуль Perl/Tk. Самый простой способ проверить, установлен ли какой-либо модуль Perl на компьютере – ввести команду perl -e "use module". Чтобы убедиться в том, что на компьютере установлен модуль Perl/Tk, введите следующую команду:

perl -e "use Tk"

Если модуль найден, команда будет выполнена и возвратит приглашение командной строки. В противном случае, если модуль отсутствует, будет выведено следующее сообщение об ошибке:

        Can't locate Tk.pm in @INC (@INC contains: /opt/ActivePerl-5.8/site/lib 
        /opt/ActivePerl-5.8/lib .) at -e line 1.
        BEGIN failed--compilation aborted at -e line 1.
        

Запомните, что синтаксис Perl чувствителен к регистру: perl -e "use Tk" и perl -e "use tk" - это две разные команды, обращающиеся к двум различным модулям (Tk и tk).

Если модуль не обнаружен, следующим шагом будет его загрузка и установка. Это можно сделать различными способами.

Если вы используете ОС UNIX или Linux, один из способов загрузить и установить модули Perl – это использовать сеть архивов CPAN (Comprehensive Perl Archive Network). Введите следующую команду:

        perl –MCPAN –e shell
        install Bundle::CPAN
        reload cpan
        install Tk
      

В ОС Windows для тех же целей используется менеджер пакетов Perl (Perl Package Manager, PPM). В командной строке введите ppm для запуска графического интерфейса и загрузки модуля Tk.

После завершения установки еще раз убедитесь том, что Perl обнаружил данный модуль, введя команду perl –e "use Tk".

Создание окна

Теперь, когда на вашем компьютере установлены Perl и модуль Tk, самое время написать первую программу с графическим интерфейсом при помощи этого модуля. Мы начнем с простой программы Hello World. При помощи вашего любимого текстового редактора создайте файл helloworld.pl и введите в него следующий текст:

        #!/usr/bin/perl -w
        # Display Hello World program
        
        use Tk;
        use strict;
        
        my $mw = MainWindow->new;
        $mw->geometry("200x100");
        $mw->title("Hello World!!!");
        
        $mw->Label(-text => 'Hello World')->pack();
        
        $mw->Button(-text => "Close", -command =>sub{exit})->pack();
        
        MainLoop;
      

Выполнение скрипта генерирует GUI-приложение, показанное на рисунке 1.


Рисунок 1. Пример скрипта Hello World
Рисунок 1. Пример скрипта Hello World

Давайте разберем данный скрипт построчно:

      #!/usr/bin/perl -w
      

Первая часть (/usr/bin/perl) определяет расположение исполняемых файлов Perl и указывает компьютеру использовать данную копию Perl для выполнения скрипта helloworld.pl file. Вторая часть этой строки (-w) - это полезное средство Perl: этот параметр активирует вывод предупреждений для конечного пользователя при возникновении любых ошибок.

Комментарии и текст, который не должен обрабатываться при выполнении программы, начинаются с символа решетки # symbol:

# Display Hello World program

Чтобы скрипт Perl использовал модуль Tk, модуль необходимо включить – при помощи оператора use Tk. Оператор use strict также помогает выявлению различных опечаток или логических ошибок.

use Tk;
use strict;
      

Чтобы создать первичное окно приложения, используйте MainWindow и назначьте его $mw. $mw выступает в роли родителя для всех остальных виджетов.

my $mw = MainWindow->new;
      

Укажите размер окна 200 x 100 и заголовок окна "Hello World!!!".

$mw->geometry("200x100");
$mw->title("Hello World!!!");
      

Создайте надпись в главном окне с заголовком Hello World. Оператор создания надписи завершается дополнительным методом pack, который обрабатывает геометрию объектов. Этот метод используется в виджетах для вычисления пространства, выделенного из родительского виджета; он также отображает сам виджет.

$mw->Label(-text => 'Hello World')->pack();
      

Следующая строка создает кнопку Close (Закрыть) в главном окне. При активации с помощью мыши клавиатуры эта кнопка закрывает скрипт Perl.

$mw->Button(-text => "Close", -command =>sub{exit})->pack();
      

Так как кнопка занимает место в главном окне, вам снова необходимо использовать метод pack для расчета занимаемого пространства.

Перед выполнением оператора MainLoop в скрипте все должно быть прочитано, определено и готово к выполнению. При вызове MainLoop все функции и данные считываются перед выполнением, а затем выводится графический интерфейс.

MainLoop;
      

Виджеты

Этот раздел содержит введение в виджеты. В нем рассматривается несколько основных виджетов с примерами: фреймы, текстовое поле, поле ввода, кнопки и надписи.

Что такое виджет?

Виджет – это графический объект, выполняющий определенную функцию. Любой графический объект в модуле Perl/Tk может рассматриваться как виджет. Если вы представляете себе приложение с графическим интерфейсом, кнопки, текст, фреймы и полосы прокрутки – все это виджеты.

Следующие примеры составляют основу виджетов, обсуждаемых далее в этой статье.

Фрейм

Фрейм, в точном соответствии со своим названием (frame – рамка), представляет собой рамку или блок. Фрейм используется для группировки других виджетов.

Создайте скрипт следующего содержания:

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("200x100");
$mw->title("Frame Test");

$mw->Frame(-background => 'red')->pack(-ipadx => 50, -side => "left", -fill => "y");
$mw->Frame(-background => 'blue')->pack(-ipadx => 50, -side => "right", -fill => "y");

MainLoop;
      

Запуск этого скрипта генерирует GUI-приложение, показанное на рисунке 2.


Рисунок 2. Пример использования фреймов
Рисунок 2. Пример использования фреймов

Давайте разберем этот скрипт:

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("200x100");
$mw->title("Frame Test");
…
…
MainLoop;
      

Эта часть скрипта была рассмотрена в предыдущем примере, поэтому давайте сразу перейдем к новым операторам.

Создаем фрейм с главным окном в качестве родителя и указываем цвет фона – красный. В отличие от предыдущего примера, метод pack имеет несколько параметров.

$mw->Frame(-background => 'red')->pack(-ipadx => 50, -side => "left", -fill => "y");
      

Первый аргумент ipadx увеличивает ширину фрейма до 100 (50 x 2). Второй аргумент side выравнивает фрейм по левой стороне родительского объекта ($mw). Третий аргумент выделяет место во фрейме по оси y (по вертикали).

Следующий фрейм похож на предыдущий, но цвет его фона – синий, и он выровнен по правой стороне главного окна.

$mw->Frame(-background => 'blue')->pack(-ipadx => 50, -side => "right", -fill => "y");
      

Текстовое поле

Текстовое поле создает рабочую область для редактирования текста. Создайте скрипт следующего содержания:

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("200x100");
$mw->title("Text Test");

$mw->Text(-background => 'cyan', -foreground => 'white')->pack(-side => "top");

MainLoop;
      

Запуск этого скрипта и ввод текста генерирует GUI-приложение, показанное на рисунке 3.


Рисунок 3. Пример текстового поля
Рисунок 3. Пример текстового поля

В этом примере текстовый виджет создается с главным окном в качестве родителя:

$mw->Text(-background => 'cyan', -foreground => 'white')->pack(-side => "top");
      

Кроме изменения цвета фона, можно менять только цвет шрифта. Как всегда, для выделения места и отображения виджета используется метод pack.

Поле ввода

Поле ввода похоже на текстовое поле тем, что позволяет вводить или редактировать текст. Текстовое поле позволяет вводить многострочный текст, а поле ввода - только одну строку текста.

Создайте скрипт следующего содержания:

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("200x100");
$mw->title("Entry Test");

$mw->Entry(-background => 'black', -foreground => 'white')->pack(-side => "top");

MainLoop;
      

Запуск этого скрипта и ввод текста генерирует GUI-приложение, показанное на рисунке 4.


Рисунок 3. Пример поля ввода
Рисунок 3. Пример поля ввода

Единственное отличие от текстового поля – это наименование виджета:

$mw->Entry(-background => 'black', -foreground => 'white')->pack(-side => "top");
      

Однако, как показано в примере, вы можете ввести только одну строку текста.

Кнопка

Виджет-кнопка создает кнопку, которая может выполнять функции или команды, когда ее активирует конечный пользователь. Почти все программы с графическим интерфейсом используют кнопки, поэтому с этим виджетом стоит познакомиться поближе.

В следующем примере используется три кнопки. Первая, с надписью Button 1 (Кнопка 1), выводит сообщение Button 1 pushed (Нажата кнопка 1) с кнопкой ОК. Вторая, с надписью Button 2 (Кнопка 2), выводит сообщение Button 2 pushed (Нажата кнопка 2) с кнопками Yes и No и предложением завершить работу программы. В зависимости от того, какая кнопка будет нажата, будет выведено новое сообщение, указывающее, какая кнопка нажата, и соответственно будет или не будет выполнен выход из программы.

Ниже приведен пример скрипта:

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("200x100");
$mw->title("Button Test");

my $button1 = $mw->Button(-text => "Button #1", -command => \&button1_sub)->pack();

my $button2 = $mw->Button(-text => "Button #2", -command => \&button2_sub)->pack();

sub button1_sub {
  $mw->messageBox(-message => "Button 1 Pushed", -type => "ok");
}

sub button2_sub {
  my $yesno_button = $mw->messageBox(-message => "Button 2 Pushed. Exit?",
                                        -type => "yesno", -icon => "question");

  $mw->messageBox(-message => "You pressed $yesno_button!", -type => "ok");

  if ($yesno_button eq "Yes") {
    $mw->messageBox(-message => "Ok, Exiting.", -type => "ok");
    exit;
  } else {
    $mw->messageBox(-message => "I didn't think so either.", -type => "ok");
  }
}

MainLoop;
      

Запуск этого скрипта генерирует GUI-приложение, показанное на рисунках с 5 по 11.


Рисунок 5. Пример виджета с кнопками
Рисунок 5. Пример виджета с кнопками

Рисунок 6. Нажата кнопка 1
Рисунок 6. Нажата кнопка 1

Рисунок 7. Нажата кнопка 2
Рисунок 7. Нажата кнопка 2

Рисунок 8. Нажата кнопка No
Рисунок 8. Нажата кнопка No

Рисунок 9. Подтверждение нажатия кнопки No
Рисунок 9. Подтверждение нажатия кнопки No

Рисунок 10. Нажата кнопка Yes
Рисунок 10. Нажата кнопка Yes

Рисунок 11. Подтверждение нажатия кнопки Yes
Рисунок 11. Подтверждение нажатия кнопки Yes

Это скрипт сложнее, чем предыдущие примеры, но разобрать его так же просто, как и остальные. Вначале создается каждая кнопка и ей присваивается соответствующий текст (Button #1 или Button #2). Каждая кнопка связывается с командой или функцией. Соответствующие подпрограммы называются button1_sub и button2_sub:

my $button1 = $mw->Button(-text => "Button #1", -command => \&button1_sub)->pack();

my $button2 = $mw->Button(-text => "Button #2", -command => \&button2_sub)->pack();
      

При нажатии кнопки $button1 выполняется подпрограмма button1_sub. Внутри нее создается сообщение, отображающее текст Button 1 Pushed (Нажата кнопка 1) с единственной кнопкой OK. Поскольку с кнопкой ОК более не связано никаких функций, при ее нажатии сообщение закрывается, и фокус возвращается к главному окну.

sub button1_sub {
  $mw->messageBox(-message => "Button 1 Pushed", -type => "ok");
}
      

Эта подпрограмма похожа на предыдущую, за исключением того, что она содержит две кнопки Yes и No. Когда пользователь нажимает кнопку, появляется новое сообщение, указывающее, какая кнопка была нажата. Затем отображается другое сообщение, указывающее, будет ли закрыта программа.

sub button2_sub {
  my $yesno_button = $mw->messageBox(-message => "Button 2 Pushed. Exit?",
                                         -type => "yesno", -icon => "question");

  $mw->messageBox(-message => "You pressed $yesno_button!", -type => "ok");

  if ($yesno_button eq "Yes") {
    $mw->messageBox(-message => "Ok, Exiting.", -type => "ok");
    exit;
  } else {
    $mw->messageBox(-message => "I didn't think so either.", -type => "ok");
  }
}
      

Надпись

Надпись – это виджет с неизменяемым текстом. Надписи можно размещать перед текстовыми полями и полями ввода. Создайте скрипт следующего содержания:

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("200x100");
$mw->title("Entry Test");

$mw->Label(-text => "What's your name?")->pack(-side => "left");
$mw->Entry(-background => 'black', -foreground => 'white')->pack(-side => "right");

MainLoop;
      

Запуск этого скрипта и ввод текста генерирует GUI-приложение, показанное на рисунке 12.


Рисунок 12. Пример виджета с надписью
Рисунок 12. Пример виджета с надписью

Первая строка создает надпись с текстом What's your name? (Как вас зовут?):

$mw->Label(-text => "What's your name?")->pack(-side => "left");
$mw->Entry(-background => 'black', -foreground => 'white')->pack(-side => "right");
      

Чтобы расположить надпись слева от поля ввода, укажите для метода pack выравнивание по левой стороне. Как и в предыдущих примерах, поле ввода создается с черным фоном и белым текстом. Чтобы расположить надпись справа от поля ввода, укажите для метода pack выравнивание по правой стороне.

Собираем все вместе

Теперь, когда мы изучили несколько типов виджетов, давайте соберем их вместе в один скрипт.

#!/usr/bin/perl -w

use Tk;
use strict;

my $mw = MainWindow->new;
$mw->geometry("500x200");
$mw->title("All-In-One Test");


my $main_frame = $mw->Frame()->pack(-side => 'top', -fill => 'x');

my $top_frame = $main_frame->Frame(-background => "red")->pack(-side => 'top',
                                                                   -fill => 'x');
my $left_frame = $main_frame->Frame(-background => "black")->pack(-side => 'left',
                                                                   -fill => 'y');
my $right_frame = $main_frame->Frame(-background => "white")->pack(-side => "right");

$top_frame->Label(-text => "All-In-One Test!", 
                                   -background => "red")->pack(-side => "top");
$left_frame->Label(-text => "Enter text to copy", -background => "black",
                      -foreground => "yellow")->pack(-side => "left");
my $copy_entry = $left_frame->Entry(-background => "white",
                                       -foreground => "red")->pack(-side => "left");
my $copy_button = $left_frame->Button(-text => "Copy Text",
                                -command => \&copy_entry)->pack(-side => "right");

my $clear_text = $right_frame->Button(-text => "Clear Text",
                                         -command => \&clear_entry)->pack(-side => "top");
my $paste_text = $right_frame->Text(-background => "white",
                                       -foreground => "black")->pack(-side => "top");

sub clear_entry {
  $paste_text->delete('0.0', 'end');
}

sub copy_entry {
  my $copied_text = $copy_entry->get();
  $paste_text->insert("end", $copied_text);
}

MainLoop;
      

Запуск этого скрипта и ввод текста генерирует GUI-приложение, показанное на рисунке 13.


Рисунок 13. Сводный пример
Рисунок 13. Сводный пример

Давайте разберем этот скрипт так же, как другие примеры. Сначала мы создаем основной фрейм и три фрейма внутри него. Эти фреймы содержат остальные виджеты и задают структуру интерфейса.

my $main_frame = $mw->Frame()->pack(-side => 'top', -fill => 'x');

my $top_frame = $main_frame->Frame(-background => "red")->pack(-side => 'top',
                                                                   -fill => 'x');
my $left_frame = $main_frame->Frame(-background => "black")->pack(-side => 'left',
                                                                   -fill => 'y');
my $right_frame = $main_frame->Frame(-background => "white")->pack(-side => "right");
      

Затем добавляем надписи: одну в верхнем фрейме, другую в левом фрейме.

$top_frame->Label(-text => "All-In-One Test!", 
                                   -background => "red")->pack(-side => "top");

$left_frame->Label(-text => "Enter text to copy", -background => "black", 
                                    -foreground => "yellow")->pack(-side => "left");
      

В дополнение к надписи в левом фрейме создаем поле ввода, чтобы пользователь мог ввести текст, который он хочет скопировать. Также создаем кнопку, которой назначаем функцию копирования текста в текстовое поле правого фрейма.

        my $copy_entry = $left_frame->Entry(-background => "white", 
                                     -foreground => "red")->pack(-side => "left");
        my $copy_button = $left_frame->Button(-text => "Copy Text", 
                                   -command => \&copy_entry)->pack(-side => "right");
      

Теперь взгляните на правый фрейм. Кнопка позволяет пользователю стирать весь текст в текстовом поле.

        my $clear_text = $right_frame->Button(-text => "Clear Text", 
                                  -command => \&clear_entry)->pack(-side => "top");
        my $paste_text = $right_frame->Text(-background => "white", 
                                    -foreground => "black")->pack(-side => "top");
      

Также создаем текстовое поле, чтобы пользователь мог скопировать текст из поля ввода и при желании отредактировать его.

Ниже приведены подпрограммы для очистки поля и копирования.

sub clear_entry {
  $paste_text->delete('0.0', 'end');
}

sub copy_entry {
  my $copied_text = $copy_entry->get();
  $paste_text->insert("end", $copied_text);
}
      

Функция clear_entry удаляет весь текст, начиная с позиции 0.0 (строка 0 символ 0) до конца текстового поля. Функция copy_entry запрашивает текст в поле ввода и вставляет его в текстовое поле.

Заключение

Введение в использование Perl с модулем Perl/Tk в среде AIX будет полезно разработчикам, администраторам, а также клиентам и конечным пользователям. Вы можете превратить сложный для восприятия скрипт в профессионально оформленное приложение с графическим интерфейсом. Чтобы научиться работать с виджетами, потребуются некоторые усилия, но когда вы освоитесь, результат оправдает затраты.


Ресурсы

Научиться

Получить продукты и технологии

  • Perl: здесь можно скачать последнюю версию.

  • ActivePerl – это бесплатный и готовый к использованию дистрибутив Perl для Windows, Mac, OS X, Linux, Solaris, AIX и HP-UX.

  • Создайте свою следующую разработку при помощи ознакомительного ПО IBM®.(EN)

Обсудить

Об авторе

Являясь на сегодняшний день администратором национального центра данных, Адам Кормэни (Adam Cormany) в течение последних нескольких лет работал системным инженером UNIX, администратором UNIX и руководителем эксплуатации группы технического сопровождения корпорации Scientific Games. Адам более 10 лет вплотную занимался администрированием операционных систем AIX, Solaris и Red Hat Linux, и имеет статус сертифицированного специалиста IBM по eServer в области администрирования систем pSeries AIX. Помимо администрирования, Адам обладает глубокими знаниями в области написания shell-скриптов для командных оболочек BASH, CSH и KSH, а также умеет программировать на языках C, PHP и Perl.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=467554
ArticleTitle=Изучаем модуль Perl/Tk: Часть 1: Oсновы Perl/Tk
publish-date=02102010
author1-email=acormany@yahoo.com
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).