|
Основната част от операторите в Perl са оператори за работа с числа (числови оператори). Операторите върху низове не са чак толкова много, но пък Perl предоставя множество функции за работа с низове. Хубавото в случая е, че Perl не прави особенна разлика между фукнции и оператори. Разликата е само в записа - в повечето случаи операторите се записват между аргументите си (например 5 - 3), а функциите - преди аргументите, които получават (print (5,3)). Числовите оператори се делят на аритметични и логически. Те са същите както тези на Java Script.Ако сте пропуснали тази глава ето таблицата с аритметичните оператори. Perl обаче добавя и оператор за повдигане на степен - оператора **:
CODE
Приоритета на операторите с следния: * Опрератори работещи със списъци - това са например скобите. * Повдигане на степен - **. * Унарен минус - например -2. * Умножение, деление и делене по модул - *,/,%. * Събиране и изваждане - +,-. Разгледаните оператори, работят така както го правим ние. Компютрите, обаче работят с двоични числа и Perl разбира се разполага с такива оператори (повече информация за булевата аритметика). Ето и таблица с тях: CODE
Ето пример за използване на побитови оператори: CODE
Операторите за среавнение на числа са същите както и в Java Script. Това е таблицата с операторите за сравнение. Perl обаче добавя и един нов оператор, който не е точно оператор за сравнение, тъй като не връща стойност истина или лъжа. Той връща 0 ако двата аргумента са равни, 1 ако аргумента вляво е по - голям и -1 - ако аргумента отдясно е по - голям. Това е оператора <=>. Логическите оператори на Perl отново същите както и на Java Scipt, които можете да намерите в тази таблица. Perl позволява и използването на and вместо оператора && , or вместо || и not вместо !.Специфичното на Perl е, че използва специална техника на тяхното изчисление наречена отложено изчисление. Тя се харектеризира в това, че щом perl (под Perl с малки букви ще имам впредвид интерпретатора на Perl ) научи отговора на въпроса, той спира по нататъшното изчисление на логическия израз. Например ако искаме да разберем дали x и y са едновременно истина и perl разбере, че х е лъжа, то той не изчислява y. Затова можем да напишем : CODE
и това ще работи. Това точно заради отложеното изчисление. В нашия случай 3 е по-голямо от 10 и условието е истина, затова perl проверява и второто условие, което ще доведе до отпечатване на текста. Обратно, ако вместо 3 сложим 11, то при проверката на първото условие perl ще разбере, че е лъжа и оттам, няма как цялото условие да истина. Затова perl ще спре и няма да провери второто условие и низа няма да бъде изпечатан. Операторите за низове които ще разгледаме са само два. Първия е оператора за конкатенация, т.е. съединяването на няколко низа в един. Този оператор са записва като точка " .". Така, че вместо : CODE
можете да напишете : CODE
В този случай смисъла не е особенно голям (да не говорим, че втория метод е по - бавен), но понякога наистина ще ви се налага на съединявате низове. Втория оператор е оператора за повторение. Изпълнете следния пример : CODE
Сега ще научим повече за сравнението на низове. Трябва да знаете, че в някои случаи perl ще успее да сравни два низи и с операторите за сравнение на числа ==. Например сравнението "20" == "45", ще проработи, тъй като perl ще конвертира низовете в числа, но "apple" == "peach" ще даде предопредително съобщение. Това е така, защото в този случай perl сравнява низовете по азбучен ред. В действителност това е повече от азбучен ред - perl сравнява низовете по ASCII код. Например "Fish" се намира преди "facon", защото ASCII кода на "F" е 70, а на "f" - 102. Тук е времето да спомена за функцията ord(). Тя връща като резултат ASCII кода на символа, подаден й като аргумент. Да сравняваме низове с ord(), обаче не е особенно удачно за низ с повече от един символ. Затова Perl ни предоставя вградени оператори за това. Ето таблица с тях: CODE
С помоща на тези оператори можете да сравнявате низове с лекотата, с която сравнявате и числа. Съвета ми е използвайте операторите за сравнение на низове винаги когато работите с низове. В протичен случай , вашите резултати може да не са такива, каквито сте очаквали. Perl притежава още няколко много важни оператора, за някои от които ще научите по - късно, а тук само ще бъдат изборени : * Съкратения условен оператор x?y:z. * Операторите за диапазон ... и ...Задава диапазон от числа. * Операторът, който действа като запетая, но с малко по различни свойства =>. Използва се при хешовете. * Операторите !~ и =~ , които се използват за прилагане на регулярен израз върху низ. * Малко по - различно действие на наклонената черта . * Операторите >> и << , които известват битовете на едно двоично число вдясно или вляво. * Операторът -> , който се използва при референциите и обектното програмиране с Perl. Последното за тази глава е пълния ред с приоритетите на операциите : * Оператори работещи със списъци.Пример за такъв оператор е са скобите. * Оператора -> * Повдигане на степен ** * Операторите !, ~, * =~, !~ * *, /,%,x * +, -, . * <<, >> * <,>,<=,>=,lt,gt,le,ge * ==, !=, <=>, eq, ne, cmp * & * |, ^ * && * || * .., ... * ?: * , => * not * and * or, xor Не забравайте, че винаги когато искате да промените този ред може да използвате скоби. В следващата глава ще научите повече за променливите и работата със стандартия вход (клавиатурата) и стандартния изход (монитора).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









