Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [ 59 ] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

6: my($quant)=§ ; 7: By($mess,$repl); $гер1="пачек";

9: $ness="B крне осталось ant чек мороженого\п."; 10:

if {{Squant < 5)- and ($quant >1 )) { $гер1="пачкн; 13: }

if ($quant eg 1) { Srepl="пачка"; 16: }

$mess=s/пачек/$repl/; $ness;

11: 12:

14: 15:

17 18

19: }

20: 21: 22: 23

fareach{20..0) { imeEsage(S );

Ответ вы найдете ниже, в разделе "Семинар".

Дополнительные возможности интерпретатора

Отладчик это не единственная возможность интерпретатора Perl, которую можно активизировать из командной строки. В действительности на Perl можно написать

множество полезных программ, поместив их прямо в командую строку вызова претатора.


Пользователи Macintosh должны выполнять приведенные ниже примеры упражнений с командной строкой, выбрав в меню Script пункт 1-iiners. После этого можно вводить текст команды в появившееся диалоговое окно. -

Однострочные программы

Чтобы выполнить простенькие операторы на Perl прямо из командной строки, необходимо поместить их после ключа -е. В командной строке вы можете указать любой допустимый оператор Perl, как показано в следующем примере:

C:\>perl -e "print Hello, world;" Hello, world

Чтобы ввести в командной строке несколько операторов Perl, можно использовать несколько ключей -е или разделить операторы точкой с запятой. Вот пример:

C:\>perl -e "print Hello, world;" -e "print Goodbye, world;" Hello, worldGoodbye, world

забывайте, что большинство командных интерпретаторов накладывают определенные ограничения на использование кавычек и служебнгх символов. Например, в интерпретаторах Windows/DOS и Windows NT - command.com и cmd.exe - разрешается

1 Часть II. углубляемся e Perl



использовать двойные кавычки для группировки слов, как в рассмотренных выше примерах. Однако если нужно поместить в двойные кавычки служебные символы, такие как <,>, I или *, а также слова в двойных кавычках, оказывается, что сделать это

не так-то просто. За дополнительной информацией по этой теме обратитесь к справочному руководству по конкретному командному интерпретатору.

В системе UNIX необходимо соблюдать правило - кавдой открывающей кавычке должна соответствовать закрывающая кавычка. Другими словами, в UNIX использование кавычек должно быть сбалансированным. Если же необходимо поместить один из служебных символов внутрь кавычек, перед ним необходимо поставить обратную

косую черту \, например:

-e print "Hello \n"; -e print "Goodbye, world\n";

Эта команда должна работать в большинстве оболочек UNIX, таких как sh, csh, ksh, bash и др. При этом сообщения должны выводиться с новой строки. Чтобы получить подробную информацию о правилах использования служебных символов в командных строках, обратитесь к справочной странице соответствующей оболочки

UNIX

Одной из полезных и часто используемых возможностей является комбинирование

ключей -е и -d в командной строке интерпретатора Perl. Это позволяет перевести интерпретатор в режим отладки без необходимости загрузки программы, например:

С:\> perl -d -e 1

Default die handler restored.

Loading DB routines frodb.pl version 1.07 Editor support available.

Enter h or -hh for help, rldocperldebug fo raorehelp.

Bctin:: (-e:l): 1

DB<1>

После ввода этой команды отладчик отображает приглашение и переходит в режим ожидания команд от пользователя. Обычно этот режим работы используется для тестирования операторов Perl на предмет правильности синтаксиса, когда не требуется писать отдельную программу. Просто наберите нужный оператор Perl после приглашения отладчика, нажмите клавишу <Enter>, и он будет выполнен. Введенная в командной строке единица (1) является на самом деле простейшей программой на Perl.

Это обычное выражение, значение которого равно 1.

Дополнительные ключи командной строки

КЛЮЧ -С позволяет провести синтаксический анализ программы без ее запуска на выполнение, например:

С:\> perl -с Employee

Employee syntax OK

Если в программе содержится синтаксическая ошибка, сообщение будет другим, как показано ниже:

С:\> perl -с Employee

syntax error at Employee line 13, near ")



sub print emp -

C&nt uBe"glcfcal ? in w at BipLqyee line 15, гкаг ",$ " syntax error at Bioyeeliie 21, гкаг "}" oQoyee lad conpdlation errors.

При комбинировании ключей и -с производится компиляция программы с

включенным режимом вывода нредунреждений.

Очень часто в разговоре опытных программистов на Perl проскакивают слова о номере версии интерпретатора. Номер версии может также спросить у вас системный администратор при помещении созданных вами программ на Web-сервер. Чаще всего, конечно, используется версия Perl 5. Номер версии интерпретатора можно определить с помощью ключа -v, как показано ниже на примере:

С:\> perl -V

This is perl, v5.6.Q built for MS»in32-x86-multl-thread

(with 1 registered patch, see perl -V for гюге detail)

Copyright 2000, Larry Hall

Binary build 613 provided by ActiveState Tool Corp. http: mw.ActiveState.com Built 12;36;25 Наг 24 2000

Perl пну be copied only under the terms of either the fistic License or the QU Оешта! РлЫпс License, viikh may be fcutd in tte Iferl 5.0 source kit.

Complete documentation for Perl, including I?Q lists, should be found on this system using man perl" or -perldoc perl". If you have access to the

Internet, point your browser at http: www.perl.com/, the Perl Home Page.

В нашем примере мы использовали версию интерпретатора 5.6.0 для

Windows/DOS. Чтобы получить подробную информацию по конкретной версии интерпретатора (как и когда она была скомпилирована, каковы были параметры компиляции и т.д.), запустите Perl с ключом -V, например:

С:\> perl -V

Sunaary of т/ perl5 (reviskn 5 л;егзкп б subverskn 0) cmfiguratkn: Platfcm:

oaname=MSMin32, osvers=4.0, archname=MSWin32-x86-multi-thread "conpiler:

cc=cl, cptimi2B=-01 -hd -dndebug, gacverskn=

Qaracterdstics of this bdiBiy (fran litperl):

Compile-time CpujCns: ШППНЖПТУ USE ITHREADS PERL IMPLICIT CONTEXT PERL IMP

locally pli patches:

ActiveEerl Bidld 613 Built MS2 СспрЦэа at Mar 24 2000 12:36:25 iINC:

E;/Tools/Perl/lib E:/aoca/ie=rl/te5/lib



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [ 59 ] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122