написал программку, которая позволяла бы формировать и показывать список из файла, исходя из третьего порядка в строке, т.е.
список в файле:
порядок1|порядок2|18|
порядок1|порядок2|10|
порядок1|порядок2|7|
порядок1|порядок2|0|
программка должна его показывать как
порядок1|порядок2|0|
порядок1|порядок2|7|
порядок1|порядок2|10|
порядок1|порядок2|18|
он она не хочет, ругается, в чем может быть глюк ...
запускается путем - >
filename?name=имя создаваемого файла
сама программа:
#! /usr/bin/perl -w
use CGI qw( param );
use CGI::Carp qw( fatalsToBrowser );
my $filename="sort.cgi";
if(param(\'name\')) {
&create
} else {
&sortlist;
}
## создаем файл
sub create
{
my $sfile=param(\'name\');
$sfile="$sfile.dat";
# если нет такого файла создадим
unless (-e $sfile)
{
open(FILE1,">$sfile") || die("Can\'t create $sfile",$!);
print FILE1 qq~name1|name2|1|\\nname1|name2|5|\\nname1|name2|4|\\n~;
close(FILE1);
chmod(0660,$sfile);
}
print "Content-type: text/html\\n\\n";
print "
Список создан";
}
### сортируем его
sub sortlist
{
my $file=param(\'file\');
#Open Rubric
open (FILE, "<$file") or die("Can\'t open $file-file ",$!);
my @lines=
;
close(FILE);
print "Content-type: text/html\\n\\n";
print "Сортируем список
";
#Здесь формируем список
foreach(@lines)
{
my($hesh1{$name},$hesh2{$name},$name)=split(/\\|/, $_);
}
#sort
foreach (sort keys %hesh1)
{
print "$hesh1{$_}|$hesh2{$_}
\\n";
}
print "
";
}
заранее спасибо