Posts Tagged ‘Набор операторов’

Прекрасный язык Perl

Вы наверное обратили свое внимание что CGI скрипты пишутся обычно на языке Perl (Practical Extraction and Report Language)- очень удобном языке,впитавшем из других все лучшие черты.Может у вас возникнуть сомнение :Ну вот!Изучать новый язык программирования!? Спешу вас успокоить,изучение Perl не будет в тягость (я сужу по своему опыту!). Вы даже сами не заметите как выучите его.Если вы хоть когда-нибудь программировали скажем на C и использовали утилиту grep для поиска регулярных выражений в тексте,то вам будет еще легче.Мое изучение Perl началось с того что я скачал Perl подWindows (фирмы ActiveWare) и изучения той HTMLой документации которая к нему прилагалась хватило чтоб этот язык стал моим любимым….
Все в нем сделано для удобства программиста (в отличии например от Java;( )
Начнем с переменных,они в Perl бывают 3х типов скаларные,списковые(массивы) и хэши(ассоциативные массивы). Для указания компилятору(да и для немалого удобства программиста) перед именем скалярной переменной стоит знак ‘$’ перед массивом ‘@’,перед хешем ‘%’. т.е. например $scalar_var,@array_var,%hash_var Скалярные переменные могут быть как числовые так и строковые,но это не надо указывать Perl сам по контексту в зависимости от операций может привести одно к другому.
Например: «123″+»4″ будет 127 (или «127″) так как операция ‘+’ действует над числами а вот если применить операцию конкатенации строк ‘.’ то строковое «test» . 1 будет «test1″


Ну а вот операции над скалярными переменными:

Операцыи Описание Пример
+ — * / % Арифметические print 2*7+4/(8%3);
print int(127/15); #целая часть
** Возведение в степень print 2**16;
++ — Инкремент-декремент $i++;
& | ^ ~ << >> Побитовые $x=3;$y=4;
print $x|$y;
print $x&$y;
== != < > <= >= <=> Числовые операции сравнения if($x==9){print «Ok!»;}
eq ne lt gt le ge cmp стрковые операции сравнения if($game eq ‘doom’){print «You are doomer!\n»;}
|| && ! Логические if(($x==9)||($game eq ‘doom’)){print «hello you!\n»;}
?: Условный оператор $x=($game eq ‘quake’?9:8);
, Последовательное вычисление $x=10,$y=20;
. Конкатенация $x=’http://’.'www.uic.nnov.ru’;
x Повторение $x=’1234′x5; #$x=’12341234123412341234′
=~ Сопоставление с образцом if($url=~/http/){print «HTTP»;}
!~ То же но с отрицанием if($url!~/http/){print «No HTTP»;}
= += -= *= /= %= **= |= &= ^= ~= <<= >>= .= x= Присваивание $x+=$y;

(далее…)