Мой первый скрипт на Perl.
Скрипт был написан в 2002-2003 году, когда я только начал изучать этот язык.
#!/usr/bin/perl
$x=100; $y=100;
$dir_url = "http://lit-1/img";
$sm_dir_url = "http://lit-1/img/sm";
$sm_dir = "/www/img/sm";
$script = "g.pl";
$num = 0;
$mes = 15;
$r = 3;
sub err {print "Err: @_";exit;}
sub f_err {$_=~s/\</</g; $_=~s/\>/>/g; $_=~s/\"/"/g; $_=~s/:/\&\#58;/g;}
sub s {s/%([0-9A-Ha-h]{2})/pack("C", hex($1))/eg;}
sub tab
{
$alls = int(($smnum-1)/$mes)+1;
if ($ENV{DOCUMENT_URI} ne "") {$script="$ENV{DOCUMENT_URI}";}
if ($f{page} > $alls) {err ("incorrect page number.");}
for ($i=1;$i<=$alls;$i++)
{
$a=$page/$mes+1;
if ($a ne $i) {$LINE .="|<a href=$script?g=$f{g}&page=$i> $i </a>";}
else {$LINE .="| $i ";}
}
print qq~<head>
<title>my_galery</title>
<meta http-equiv="Content-Type" content="text/html; charset=KOI8-R">
</head>
<body bgcolor="FFFFFF" leftmargin="0"
topmargin="5" marginwidth="0" marginheight="0">
<table>
<tr>
<td align="center" colspan="5">
<font size=1>$LINE |</font>
</td>
</tr>~;
$msgs=$mes+$page;
while ($msgs > $num + $page)
{
print "<tr>";
for ($u=0;$u<$r;$u++)
{
$ee=$num + $u + $page;
print "<td height=\"$y\" width=\"$x\" align=\"center\">";
if ($smlist[$ee] ne "")
{
print "<a href=\"$script\?g=$f{g}&file=$smlist[$ee]&c=$captions[$ee]\">
<img border=0 width=\"100\" src=\"$sm_dir_url/$smlist[$ee]\"
alt=\"$captions[$ee]\"></a>";
}
else {print"\ \;";}
print "</td>";
}
$num +=$r;
}
print "</tr></table></body></html>"; exit;
}
print "Content-type: text/html\n\n";
if ($ENV{'QUERY_STRING'} eq ''){err ("QUERY_STRING is empty!!! AAAAAAAAAAAA!!!!!");}
@p = split(/&/, $ENV{'QUERY_STRING'});
for (@p){$_ =~ &s; $_ =~ tr/+/ /; ($n, $v) = split(/=/, $_);$f{$n} = $v;$f{$n} =~ &f_err;}
if ($f{page} eq "") {$f{page}=1;}
$file = "$f{g}";
$page=($f{page}-1)*$mes;
if ($f{g} eq "") {err ("incorrect access")}
if ($file ne "")
{
open (F,"$file") || err ("incorrect name of gallery.");
while (<F>)
{
chop;
($key,$value) = split(/:/); $photos{$key} = $value;
}
close(F);
for (sort keys %photos)
{
push (@smlist,$_);
push (@captions,$photos{$_});
}
$smnum = @smlist;
}
else {err ("No tps.");}
if ($f{file} ne "")
{
print "
<html>
<head>
<title>$f{c}</title>
</head>
<body>
<center>
<a href=\"javascript:history.back()\">
<img border=0 src=\"$dir_url/$f{file}\" alt=\"$f{c}\">
</a>
</center>
</body>
</html>\n";
}
else {tab();exit;}
Скрипт был написан в 2002-2003 году, когда я только начал изучать этот язык.