|
Както споменахме в Perl има три типа данни : скалари, списъци и хешове. Съответно има и три типа променливи, в които да ги съхраняваме: скаларни променливи, масиви и хешове. Тук ще разгледаме само скаларните променливи, а останалите в следващата глава. Всяка една скаларна променлива започва със знака за долар: $var, $apple. Следващият знак трябва да е подчертаващо тире, малка или голяма буква. След това е допустима произволна комбинация от букви, цифри и подчертаващи тирета с обща дължина до 251 символа. Ето и пример за използване на променливи:
CODE
Както забелязвате и тук, както в Java Script не е нужно променливата да се декларира преди да се използва. Както и Java Script и Perl позволява едновременното извършване на операции и присвояване. Синтаксисът и тук е следнията : $a <оператор>= $b. Например : CODE
Тези комбинации от оператори включват **==, *=, -=, /=, .=, %=, &=, |=, ^=, <<=, >>=, &&= и ||=. Те имат същия приоритет както и оператора =. Освен тези оператори Perl притежава и операторите за автоматично инкрементиране и декрементиране - ++ и --. Те имат същото действие както и в Java Script. Perl позволява многократно присвояване на една стойност на няколко променливи : CODE
Това е едно от нещата, което обаче не трябва да правите, тъй като създава доста объркан код. Променливите, които писахме досега са глобални променливи. Използването на глобални променливи не би трябвало да създава проблеми - поне на първо време. Но когато започнете да пишете наистина големи програми, използването само на глобални променливи наистина не е добра идея. Затова Perl въвежда понятието лексикална променлива. Тяхната област на видимост е ограничена до обхвата на текущия блок и всички блокове, които той обваща. Ако лексикалната променлива не се намира в блок, то действието й е ограничено до текущия файл. Декларирането на лексикална променлива става със запазената дума my : my $apple;, my $quantity;. Ето и пример : CODE
За да сме по прецизни при писането на програмите, трябва да укажем да perl да следи използването на променливите. Това става с конструкцията "use strict;" , която освен това следи и дали сте декларирали всички променливи. Вече знаете как да декларирате лексикални променливи - чрез my . Но как да декларирате глобални променливи? Това става със запазената дума our . Нека сега да променим нашия пример: CODE
На пръв поглед никаква разлика. Обаче ако пропуснем our ще получим следната грешка : Global symbol "$a" requires explicit package name. И накрая един съвет - избягвайте декларирането на глобални променливи. Perl предоставя вътрешно множество служебни променливи, които вие не трябва да предефинирате. Такава е и променливата $_. Това е подразбиращата се скаларна променлива и perl ще използва нейната стойност в множество функции, ако не сте задали друга променлива естествено. Същите подразбиращи се променливи има за масиви и хешове - съответно @_ и %_. Сега ще разгледаме интерполацията на променливи, за която само споменахме по - рано. Както казахме, низовете заградени в апострофи не се интерполират. Това означава, че ако напишете 'My name is $name' , perl ще ви прекръсти на $name, вместо да сложи вашето истинско име съдържащо се в скаларната променлива $name. Ето и пример за казаното : CODE
Ако искате да поставите текст непосредствено след променливата, то трябва да заградите променливата във фигурни скоби: CODE
Дотук нашите програми не можеха да получават данни от потребителя (освен ако потребителя не разбира perl и не промени кода на програмата). Такива програми не са особенно полезни и затова Perl ни предоставя начин за въвеждане на данни. Това става с конструкцията <STDIN>, която чете ред от файл наречен стандартен вход. Стандартния вход обикновенно, обаче не е файл, а клавиатурата на потребителя. Аналогично, по подразбиране функцията print печата във файл наречен стандартен изход, който обикновенно е екрана на компютъра. Стандартния изход се означва с конструкцията <STDOUT>. Тези две конструкции ще бъдат разгледани по-подробно когато разгеждаме файловете. Ето пример за използване на стандартния вход : CODE
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









