Отсортировать данные для данного агента
foreach $line(@new){
foreach $m (@data){push @res, "$m" if($m=~m/^(.*)#$line$/)}
}
Отсеять из файла data.crypt разрешенные данные для agent007.crypt при помощи сравнения подстрок.
@sort=map{$_ -> [1]}
sort{$a->[0] cmp $b->[0]}
map{[/^(.*)#/, $_]}
grep{!$_{$_}++} @res;
Отсортировать данные для данного агента в алфавитном порядке по первой ячейке из общей таблицы data.crypt и убрать повторения одинаковых строк.
foreach $u('a' .. 'z'){
foreach $n(@sort){push @{$ha{$u}}, $n if($n=~m/^$u/)}
}
Создавть хеш массивов, где ключем будет буква, а значением будет массив из строк спецзаданий.
for $k(sort keys %ha){print "<a href=\"#$k\">$k</a> "}
Вывести линейку начальных букв, по которым будут сортироваться результаты.
for $k(sort keys %ha){
print "<a name=\"$k\"> </a><br>\n";
foreach $im(@{$ha{$k}}){
($autor, $pesniya, $position)=split /#/, $im;
print "$autor, $pesniya, $position<br>\n";
}
}
Вывести массивы, ассоциированные со значениями ключей букв. @{$ha{$k}} - просто обычный массив, доступ к которому зависит от значения ключа $k. Каждый элемент массива стостоит из строки с разделителями #, по нему и разделяет функция split ($autor, $pesniya, $position)=split /#/, $im;
Содержание Назад Вперед