позволяющий пройтись по всем элементам
if(условие)оператор; оператор if условие;
В пару к оператору
if имеется оператор
unless : означающий
if
с отрицанием:
unless(($method eq 'GET')($method eq 'POST')){print "Unsupported method";} print "Ok" unless $x < $y;
Также в пару
while существует
until
синтаксис оператора
for
полностью аналогичен
C:
for($i=0;$i
новшеством(и приятным) является
foreach позволяющий пройтись по всем элементам массива,присваивая по очереди его элементы какой-то переменной, его синтаксис такой:
foreach $переменная (@массив){ блок операторов; } или foreach (@массив){ операторы; }
Последний пример особенно важен для упрощения вашего тяжкого труда програмиста и демонтстрирует интересную особенность
Perl-переменную по умолчанию
$_: в оргомном количестве операторов и функций при опускании аргумента она подразумевается по умолчанию. Она также по умолчанию сопоставляется с регулярным выражением:
следующий пример @Data=<STDIN>; foreach(@Data){ chomp; print if /^From:/; } аналогичен такому: @Data=<STDIN>; foreach $_ (@Data){ chomp($_); print $_ if $_ =~ /^From:/;
как видите затраты труда значительно сокращаются,благодаря этому маленькому трюку. Регулярные выражения.
регулярное выражение записывается между двух слэшей
/рег_выр/
if(/abc/){ print '$_ содержит abc\n'; }
это самый простой пример применения регулярного выражения а теперь посложнее вот тут в табличке (из того что я помню наизусть):
Символ |
Значение |
Пример применения |
. |
Соответствует любому символу |
print if /ab.c/; |
[мн-во симв] |
Соответствует любому символу из данного мн-ва |
/[abc]d/;#соответствует ad,bd,cd |
[^мн-во] |
Отрицание мн-ва символов |
/[^xyz]/;# |
(....) |
Группировка элементов(и также запоминание в переменных $1 $2 $3 ...) |
/(xyz)*/
/([abc].[^xy]qwerty)/ |
(..|..|..) |
Одна из альтернатив |
|
* |
повторение образца 0 или более раз |
/.*/;#соответствует всему |
? |
Повторение 0 или 1 раз |
/(http:\/\/)?.*\.cgi/ |
+ |
Повторение 1 или более раз |
|
{n,m} |
повторение от n до m раз |
|
{n} |
повторение точно n раз |
|
{n,} |
повторение n и более раз |
|
Спец символы: |
|
|
\t \r \n ... |
Управляющие символы:табуляции,возврат каретки,перевод строки..... |
|
\d |
Соответствует цифре,Аналог [0-9] |
|
\D |
Соответствует нецифровому симсволу,аналог[^0-9] |
|
\w |
Соответствует букве |
|
\W |
Соответствует небуквеному символу |
|
\s |
Соответствует пробельным символам(пробелы,табуляции,новые строки..) |
|
\S |
Соответствует непробельному символу |
|
\b |
Соответствует границе слова |
$test1="this is test";
$test2="wise";
if($test1=~/\bis\b/){print "1";}#соответствует
if($test2=~/\bis\b/){print "2";}#нет |
\B |
Соответствует не границе слова |
/\Bis\B/ соответсвует 'wise' но не 'is' |
<
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий