Перейти на главную страницу
Именно последнему аспекту уделена значительная часть данной статьи. До последнего времени Perl применялся в основном для «пакетной» обработки информационных массивов, визуализацией же занимались другие пакеты, особенно явно это проявлялось в самых популярных у пользователей операционных средах Windows 9x/NT. С появлением графических средств GUI Perl может стать реальным конкурентом таких средств, как например Visual Basic. Вместе с тем, уже не секрет, что в настоящее время ActiveState готовит плагин «графического» Perl для Visual Studio 7.
perl <имя программы> [<параметры>]
rindex - определение позиции подстроки в строке (последнее вхождение)
length – длина строки
substr – подстрока текстовой строки
split – разбивка строки на набор подстрок по шаблону-разделителю
sprintf – форматирование выходной строки в стиле С
printf – печать форматированного текста в стиле С
chomp – удаление символа конца строки (обычно - \n) из строки
chr – преобразование числа в символ
ord – преобразование символа в код
основных оператора, связанных с регулярными выражениями:
Третий, родственный этим двум операторам – оператор замены текста – tr/…/…/ не использует регулярные выражения.
Фрагмент программы будет выглядеть так:
$text=”Hello, Basic”;
$text=~s/Basic/Perl/;
$i=index($text,”Basic”);
if ($i>-1) {
$tmp=substr($text,0,$i);
$text=$tmp.”Perl”;
}
Возможности оператора проверки совпадения m покажем на втором примере, заключающемся в необходимости выделения числового значения из произвольной фразы, например “Perl был создан в 1986 году”.
if ($text=~m/.*\s(\d+)\s.*/) {
$num=$1;
}
Следует отметить, что регулярные выражения - это одна из наиболее сложных (но и мощных) возможностей Perl, программы, написанные профессионалами с их использованием выглядят как произведения искусства, а элегантность кода поражает воображение. Однако настоящую мощь Perl обрел, начиная с 5 версии, когда появился механизм его расширения, приведший к фактической децентрализации языка. В результате было создано огромное количество «системных» приложений, в том числе и графический интерфейс пользователя GUI.
Программисты, знакомящиеся к любым графическим интерфейсом, считают первым по счету достижением в освоении новой среды вывод сообщения “Hello, world”. Мы тоже начнем с этого. Для начала опишем в нашей Perl-программе загрузку графического интерфейса:
-1;
-name => ’Main’);
-1;
$main->AddButton(-text => “Hello, world”, -name => “Camel”);
то в результате выполнения программы получим картинку:
При этом нажатие на кнопку вызывает состояние, обработка которого может быть организована в подпрограмме с именем: Camel_Click
$main->AddTextfield(-text => "Hello, world", -left => 5, -top => 10, -width => 90,-height => 20);
-name => "WText",
-left => 5,
-top => 5,
-width => 90,
-height => 50,
-style => WS_CHILD | WS_VISIBLE | WS_VSCROLL
| ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,
);
$Textbox->Text("Hello,\nworld");
Существуют и другие возможности графического интерфейса пользователя (GUI), - их подробное описание может занять целый учебник, отдельные разделы которого представлены в поставляемой с пакетом документацией. Для демонстнации некоторых «оконных» диалоговых возможностей Perl в качестве примера приведем интерфейс простейшего средства просмотра и поиска в базах данных информационно-поисковой системы InfoReS-XL. Данное средство просмотра, в отличие от основной ветви системы, разработанной на С, и адаптированной для работы в Internet, реализовано на ActivePerl с использованием GUI.
В этом примере тест документа выводится в поле редактирования (метод AddRichEdit()), диагностическая информация и запросы выводятся в текстовое поле (метод AddTextfield()), а все кнопки выводятся методом AddButton(). Некоторые особенности программированя на Perl в среде Windows 9x/NT, с которыми автор столкнулся при написании этой программы будут приведены ниже.
/perl/gui.exe.lib/blib/arch/auto//Win32/GUI – в /Perl/site/lib/auto/Win32/GUI;
/perl/gui.exe.lib/blib/html/lib/Win32 – в /Perl/html/lib/Win32;
/perl/gui.exe.lib/blib/lib/Win32 – в /Perl/site/lib/Win32.
В Internet один из адресов, по которому можно «скачать» модуль графического интерфейса пользователя (и много других полезных программ) – https://dada.perl.it
После выполнения инсталляции бывает полезно выяснить версию установленного программного обеспечения. В случае Perl достаточно ввести команду с параметром: Perl –v . Если все было установлено корректно, должно появится сообщение с версией Perl, конкретно Perl 5.005_3.
Названный выше графический интерфейс пользователя не подразумевает наличие графической среды разработки, попытки создания которой сегодня не прекращаются. В настоящее время разработано большое количество редакторов для работы с исходными текстами Perl, как свободно распространяемых, так и коммерческих. Однако, в качестве самого простого редактора достаточно использовать, например, Notepad. Вместе с тем, мы рекомендуем использовать версию популярнейшего UNIX-редактора VI, адаптированного под Windows-платформу. Этот редактор можно использовать, ничего не зная о командах текстового редактора VI для UNIX, но его истинная мощь достигается использованием специальных команд и макросов, часть которых была опубликована в 6 номере журнала за 2000 год. Текстовый редактор типа VI находится в каталоге /perl, имя файла winvi32.exe. В Internet информацию об этом редакторе (и сам модуль) можно получить по адресу - https://home.snafu.de/ramo/WinViEn.htm . При работе с средах Windows 9x/NT для обеспечения переносимости программ, разработанных на языке Perl, путем их компиляции и превращения в exe-модули существует несколько программ, большинство из которых является коммерческими. С вполне работоспособной демо-версией одной из таких программ (perl2exe) можно ознакомиться в Internet по адресу https://www.perl2exe.com или на CD в каталоге /perl/perl2exe.
При использовании Perl в среде Windows 9x/NT, да и еще вдобавок при работе с символами кириллицы, приходится мириться с некоторыми особенностями реализации интерпретатора (и компиляторов) и «обходить» их. Приведем некоторые примеры, понимая, что полноты такого рода особенностей достичь не удастся.
При использовании Perl под управлением Windows 9x/NT всегда следует указывать полный путь к файлу, над которым будут выполняться какие-либо действия, например:
read (FILE,$x,4,0);
for ($jx=0; $jx<4; $jx++) {
$c=getc(FILE);
if (length($c)==0) { $c=chr(26); }
$x=$x.$c;
}
$nx=unpack("L",$x);
Средства графического интерфейса пользователя не включают стандарных средств печати (например, из окна редактирования). Существует несколько путей решения этой задачи, например вызов стандартных средств операционной системы. Приведем пример ($doc – буфер с документом, который требуется распечатать):
if (-e "$ENV{'WINDIR'}/System32/mshtml.dll") {
$dll="$ENV{'WINDIR'}/System32/mshtml.dll";
}
else {
}
open OU,">$ENV{'TEMP'}\\1.htm";
\n$doc";$ou="$ENV{'TEMP'}\\1.htm";
close OU;
system("rundll32.exe $dll,PrintHTML $ou");
return 0;
}
Это правильная ассоциация – изначально (с 1986 г.) язык Perl рассматривался как инструмент системного администрирования в unix, однако со временем превратился в один из самых попул
26 09 2014
1 стр.
Графический интерфейс был создан в первую очередь для удобства работы с пк. Интерфейс был интуитивно-понятным и работать с ним мог любой пользователь
18 12 2014
1 стр.
Изучить алгоритмы построения параметрических кривых, использую форму Эрмита, Безье и b-сплайн. Реализовать графический редактор, позволяющий построение параметрических кривых
11 10 2014
1 стр.
В этом материале будет рассмотрен действие установки всех драйверов в примере Windows xp. На Windows Vista, Windows 7 он происходит абсолютно аналогично
16 12 2014
1 стр.
Браузеры: Opera 20 и старше; Internet Explorer 0 и старше; FireFox 0 и старше
24 09 2014
1 стр.
Хорошая идея – сделать вычислитель общедоступным через веб-интерфейс
11 10 2014
1 стр.
В данном докладе рассматриваются проблемы быстрого ввода данных в электронный каталог Ирбис, и пути их решения с помощью программы ms excel 2007 и кода Perl
26 09 2014
1 стр.
Внимание! Данная установка возможна только на операционных системах Windows 2000, Windows xp, Windows 2003 Server
05 09 2014
1 стр.