Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 PERL - ВТОРА ЧАСТ
  1. PERL - ВТОРА ЧАСТ
deam0n
     
Автор  deam0n (19.02.2005 15:37)  съобщение до автора
Погледнат  3413 пъти  добави към любими
Оценка  добави коментар
Гласове  4  изпрати на приятел
Коментари  (0)  абонирай се за Perl
    Страница 1 / 1

 



Основната част от операторите в Perl са оператори за работа с числа (числови оператори). Операторите върху низове не са чак толкова много, но пък Perl предоставя множество функции за работа с низове. Хубавото в случая е, че Perl не прави особенна разлика между фукнции и оператори. Разликата е само в записа - в повечето случаи операторите се записват между аргументите си (например 5 - 3), а функциите - преди аргументите, които получават (print (5,3)). Числовите оператори се делят на аритметични и логически. Те са същите както тези на Java Script.Ако сте пропуснали тази глава ето таблицата с аритметичните оператори. Perl обаче добавя и оператор за повдигане на степен - оператора **:

CODE
1
2
3
4
#!/usr/bin/perl
#ex5.plx
use warnings;
print 2**4,"n";

   Приоритета на операторите с следния:

    * Опрератори работещи със списъци - това са например скобите.
    * Повдигане на степен - **.
    * Унарен минус - например -2.
    * Умножение, деление и делене по модул - *,/,%.
    * Събиране и изваждане - +,-.

   Разгледаните оператори, работят така както го правим ние. Компютрите, обаче работят с двоични числа и Perl разбира се разполага с такива оператори (повече информация за булевата аритметика). Ето и таблица с тях:

CODE
1
2
3
4
5
Оператор      Действие
&     Побитово
"и"
|     Побитово
"или"
^     Побитово
"изключващо или"
~     Отрицание

  Ето пример за използване на побитови оператори:

CODE
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
#ex6.plx
use warnings;
#51 = 00110011
#81 = 01010101
print "51 AND 81 is ",51 & 81,"n";
#Result is 17 = 00010001
print "51 OR 81 is ",51 | 81,"n";
#Result is 119 = 01110111
print "51 XOR 81 is ",51 ^ 81,"n";
#Result is 105 = 01101001

 Операторите за среавнение на числа са същите както и в Java Script. Това е таблицата с операторите за сравнение. Perl обаче добавя и един нов оператор, който не е точно оператор за сравнение, тъй като не връща стойност истина или лъжа. Той връща 0 ако двата аргумента са равни, 1 ако аргумента вляво е по - голям и -1 - ако аргумента отдясно е по - голям. Това е оператора <=>.
   Логическите оператори на Perl отново същите както и на Java Scipt, които можете да намерите в тази таблица. Perl позволява и използването на and вместо оператора && , or вместо || и not вместо !.Специфичното на Perl е, че използва специална техника на тяхното изчисление наречена отложено изчисление. Тя се харектеризира в това, че щом perl (под Perl с малки букви ще имам впредвид интерпретатора на Perl ) научи отговора на въпроса, той спира по нататъшното изчисление на логическия израз. Например ако искаме да разберем дали x и y са едновременно истина и perl разбере, че х е лъжа, то той не изчислява y. Затова можем да напишем :

CODE
1
3>=10 and print "Three is more than ten"

и това ще работи. Това точно заради отложеното изчисление. В нашия случай 3 е по-голямо от 10 и условието е истина, затова perl проверява и второто условие, което ще доведе до отпечатване на текста. Обратно, ако вместо 3 сложим 11, то при проверката на първото условие perl ще разбере, че е лъжа и оттам, няма как цялото условие да истина. Затова perl ще спре и няма да провери второто условие и низа няма да бъде изпечатан.
   Операторите за низове които ще разгледаме са само два. Първия е оператора за конкатенация, т.е. съединяването на няколко низа в един. Този оператор са записва като точка " .". Така, че вместо :

CODE
1
print "Three", "element", "string";

можете да напишете :

CODE
1
print "Three"."element"."string";

В този случай смисъла не е особенно голям (да не говорим, че втория метод е по - бавен), но понякога наистина ще ви се налага на съединявате низове. Втория оператор е оператора за повторение. Изпълнете следния пример :

CODE
1
2
3
4
5
6
7
#!/usr/bin/perl
#ex7.plx
use warnings;
print "Think ",x2,"/n";

>
perl ex7.plx
Think Think

 Сега ще научим повече за сравнението на низове. Трябва да знаете, че в някои случаи perl ще успее да сравни два низи и с операторите за сравнение на числа ==. Например сравнението "20" == "45", ще проработи, тъй като perl ще конвертира низовете в числа, но "apple" == "peach" ще даде предопредително съобщение. Това е така, защото в този случай perl сравнява низовете по азбучен ред. В действителност това е повече от азбучен ред - perl сравнява низовете по ASCII код. Например "Fish" се намира преди "facon", защото ASCII кода на "F" е 70, а на "f" - 102. Тук е времето да спомена за функцията ord(). Тя връща като резултат ASCII кода на символа, подаден й като аргумент. Да сравняваме низове с ord(), обаче не е особенно удачно за низ с повече от един символ. Затова Perl ни предоставя вградени оператори за това. Ето таблица с тях:

CODE
1
2
3
4
5
6
7
8
Оператор за сравнение на низове      Еквивалентен оператор за сравнение на числа
lt     <
gt     >
eq     ==
ne     <>
ge     >=
le     <=
cmp     <=>

С помоща на тези оператори можете да сравнявате низове с лекотата, с която сравнявате и числа. Съвета ми е използвайте операторите за сравнение на низове винаги когато работите с низове. В протичен случай , вашите резултати може да не са такива, каквито сте очаквали. Perl притежава още няколко много важни оператора, за някои от които ще научите по - късно, а тук само ще бъдат изборени :

    * Съкратения условен оператор x?y:z.
    * Операторите за диапазон ... и ...Задава диапазон от числа.
    * Операторът, който действа като запетая, но с малко по различни свойства =>. Използва се при хешовете.
    * Операторите !~ и =~ , които се използват за прилагане на регулярен израз върху низ.
    * Малко по - различно действие на наклонената черта  .
    * Операторите >> и << , които известват битовете на едно двоично число вдясно или вляво.
    * Операторът -> , който се използва при референциите и обектното програмиране с Perl.

   Последното за тази глава е пълния ред с приоритетите на операциите :

    * Оператори работещи със списъци.Пример за такъв оператор е са скобите.
    * Оператора ->
    * Повдигане на степен **
    * Операторите !, ~,
    * =~, !~
    * *, /,%,x
    * +, -, .
    * <<, >>
    * <,>,<=,>=,lt,gt,le,ge
    * ==, !=, <=>, eq, ne, cmp
    * &
    * |, ^
    * &&
    * ||
    * .., ...
    * ?:
    * , =>
    * not
    * and
    * or, xor

   Не забравайте, че винаги когато искате да промените този ред може да използвате скоби. В следващата глава ще научите повече за променливите и работата със стандартия вход (клавиатурата) и стандартния изход (монитора).



   


Ключови думи: perl програмиране числов оператор низ


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008