Основи на Perl/Основни типове данни

Основните типове данни в Perl са скаларна променлива, масив и хеш
1 Скаларна променлива
Това е единична стойност - число, низ или препратка. Означава се със сайджил "$" (Стилизирано S, ot англ. scalar - скалар). Примери за скаларна променлива са:
$x = 5;
$;
2 Масив
мини|Графично представяне на масив
Масивът подредено множесво от скалари (наричат се стойности на масива). Означавани последователно, започвайки от 0. Тези означения се наричат ключове на масива. Сайджилът е "@" (Стилизирано А, от англ. array - масив). Важно е да разберете, че със споменатият по-горе сайджил "$" се означават не само скаларните променливи, а всякакви скалари, т.е. когато достигате определен елемент на масив се използва "$", а когато достигате целия масив се използва "@". Когато достигате до определен елемент на масива, ключът трябва да е ограден със средни (квадратни) скоби:
@numbers = (3,26,5,71,90);
$numbers[5] = 32; #Добавя шести елемент на масива
@fruits = ("ябълка","круша","портокал","лимон");
print "$numbers[2], $fruits[2]";
Това ще отпечата третите елементи на двата масива, защото броенето започва от 0. Т.е. за да достигнете първият елемент на масива трябва да използвате $array[0], вторият - $array[1] и т.н.
Отпечатва:
5, портокал
3 Хеш
мини|Графично представяне на хеш
Хешът (или асoциативен масив) е неподредено множество от двойки от скалари, състоящи се от ключ и стойност. Означава се със % (Можете да мислите за него така - двете кръгчета представляват съответно един ключ и една стойност). Когато достигате до определен елемент на хеша, ключът трябва да е ограден със големи (къдрави) скоби:
%file1 = (
"име" => "Мики",
"фамилия" => "Маус",
"град" => "Гладсгоу");
%file2 = ("име", "Гуфи", "фамилия", "Гууф", "град", "Дъкбург");
$file1{"град"} = "Дъкбург"; #Променя стойността на елемента, означен с ключ "град" в хеша file1
print "Досие 1:\n
Име: $file1{'име'}\n
Фамилия: $file1{'фамилия'}\n
Град: $file1{'град'}\n\n
Досие 2:\n
Име: $file2{'име'}\n
Фамилия: $file2{'фамилия'}\n
Град: $file2{'град'}";
Знакът \n означава нов ред. Горе са показани двата начина за записване на масив.
Отпечатва:
Досие 1:
4 Именуване
Правилата за именуване на скаларни променливи, масиви и хешове (както и на други типове данни, за които ще се говори по-нататък) са следните:
* Може да съдържа латинските букви a-z и задължително трябва да започва с такава
* Може да съдържа цифри
* Може да съдържа долни черти (_)
5 Низове
Низовете се ограничават с единични или двойни кавички в зависимост от случая. Най-общо казано, двойните кавички ви позволяват да интерполирате променливи, а единичните - не. Интерполацията е вмъкването на съдържанието на променлива на мястото на нейното име, предшествано със съответния сайджил.
$;
print "Здрасти, $name\n";
print 'Здрасти, $name';
Отпечатва:
Здрасти, Мики
Ако ви се наложи в низ с двойни кавички да отпечатате знак за долар или двойни кавички, използвайте обратно наклонена черта (\) пред тях. Така те няма да се опитат да интерполират променлива или да затворят низа, а просто ще се отпечатат. По същата логика в низ с единични кавички, ако Ви се наложи да използвате единични кавички, напишете \ пред тях.
print "\"Струва \$200\", каза ни продавачката";
Отпечатва:
"Струва $200", каза ни продавачката
6 Упражнения
* Какво не е наред в следният фрагмент:
@names = ("Мики", "Гуфи");
print "Здравей, @names[1]";
* Какво не е наред в следният фрагмент:
%favsports = (
"Мики" => "Голф",
"Гуфи" => "Хокей");
print "Любимият спорт на Мики е $favsports{"Мики"}, а на Гуфи - $favsports{"Гуфи"}.\n";
----