Объявление
Объявление массивов очень просто:
my @mass();
Но массив, как и хэш, можно и не объявлять, перл это умеет делать сам.
Доступ к элементам массива осуществляется например таким образом(выводится случаный элемент массива):
print $mass[ramd $#mass];
В переменной $#mass содержится размер массива-1, т.к. нуумерация элемента массива начинается с нулевого элемента.
Хэши начинаются с префикса %: %hash. Для работы с с хэш-массивами нужно, как и в обычных массивах, использовать разыменовывающий префикс $: $hash{шляпа} = серая;
Хэш можно определить несколькими способами:
%hash = (
'шляпа' => 'серая',
'водка' => 'горькая',
'вобла' => 'вкусная',
'штаны' => 'широкие',
'пиво' => 'темное',
'игрушка' => 'любимая');
%hash = (); #можно не указывать пустой хеш для создания массива, perl может сам создавать пустой хэш.
$hash{'шляпа'} = 'серая';
$hash{'водка'} = 'горькая';
$hash{'вобла'} = 'вкусная';
$hash{'штаны'} = 'широкие';
$hash{'пиво'} = 'темное';
$hash{'игрушка'} = 'любимая';
Если используется пробел при определении элемента хэша, то этот пробел лучше поставить в одинарные кавычки $hash{'дырявая шляпа'} = серая;
Добавить элементы в хеш можно так:
%hash = (
'шляпа' => 'серая',
'водка' => 'горькая',
'вобла' => 'вкусная');
%hash = (%hash, 'кошка', 'мягкая');
foreach $k (keys %hash){
print "$k = $hash{$k}\n";
}
и так:
%hash = (
'шляпа' => 'серая',
'водка' => 'горькая',
'вобла' => 'вкусная');
$hash{"дом"} = "большой";
$hash{"дым"} = "сизый";
foreach $k (keys %hash){
print "$k = $hash{$k}\n";
}
и еще например так:
my %Years = (
1999 => "golos1999.html",
2000 => "golos2000.html",
2001 => "golos2001.html",
map{$_ => "golos$_.html"}(2002..2032)
);
т.е. если у нас есть файлы, которые группируются по годам, дням, месяцам или еще как,
то дабы не переписывать скрипт, можно сказать
map { $_ => "golos$_.html" } (2002..2032)
где год или неделя берется из какое-йнибудь переменной, в данном случае из $_.