Создание серверных приложений на языке PERL


Программа вывода номеров журнала - часть 2


print "<tr><td><font size=\"1\"><b>$key: </b></font>"; #печатаем год

foreach $elem(@{$numbers{$key}}){ #вытаскиваем массив номеров журнала из хеша, ключем

#которому должен являться определенный год

if($elem=~m/\/(\d+).(\d+)\.txt/){$nj=$1; $yj=$2;

if($nj eq $nomer && $yj eq $year){#текущий номер для просмотра выделяем красным:

$temp1=qq~<font size="1" color=red><b>$nj</a> </b></font>\n~;

push(@results123, $temp);

}

else{#остальные выделяем ссылкой

$temp2=qq~<font size="1"><b><a

href="$url?month=$nj&year=$yj" class="menu">$nj</a>

</b></font>\n~;

push(@results123, $temp2)

}

}

}

#дальнейшая конструкция называется преобразованием Рэндела

#Шварца, смысл которой заключается

#в том, чтобы отсортировать массив номеров журнала по возрастанию,

#т.к. при извлечении из хеша они будут выстраиваться в порядке

#1,11,12,2,3,4...

@sort123= map{ $_ -> [1]}

sort{$a->[0] <=> $b->[0]}

map{[/>(\d+)<\/a>/, $_]} @results123;

print @sort123; #печатаем табличку номеров журнала за 1995 год

print "</td></tr>";#закрываем строку таблички

#обнуляем временные массивы

$#results123=-1;

$#sort123-1;

#возвращаемся наверх и начинаем печатать строчку

#таблицы для следующих номеров следующего года.

}

print qq~</table></center>~;

}

Все вышеописанное выглядит в виде html примерно так:

Содержание по номерам

1995: 1

1996: 1

2

3

4

5

6

7

8

9

10

11

12

1997: 1

2

3

4

5

6

7

8

9

10

11

12

1998: 1

2

3

4

5

6

7

8

9

10

11

12

1999: 1

2

3

4

5

6

7

8

9

10

11

12

2000: 1

2

3

4

5

6

7

8

9

10

11

12

2001: 1

2

3

4

5




Начало  Назад  Вперед



Книжный магазин