На перле побольше получается
use CGI;
use strict; #nu privyk ja k strict
open (NAMES, "data/names.txt")
my @names = <NAMES>;
close (NAMES);
open (SURNAMES, "data/surnames.txt");
my @surnames = <SURNAMES>;
close (SURNAMES);
for(my $i=0; $i<scalar(@surnames); $i++) { print $surnames[$i] if ($names[$i] eq $CGI->param("request"));break;}
хотя опять-таки можно упростить
![:)](https://forum.ee/public/style_emoticons/default/smile.gif)
проблема в том, что в перле надо закрыть stdin перед тем как его вывести, поэтому делаем отдельную функцию
use CGI;use strict;sub o{open(D,"data/".shift);@$a=<D>;close(D);return $a;}for(my $i=0;$i<scalar(my $n=o("names"));$i++) {print &o("surnames")[$i] if ($n[$i] eq $CGI->param("request"));break;}
Только я вас умоляю, где бы вы ни работали - НИКОГДА НЕ ПИШИТЕ ТАКОЙ КОД!
И вообще, делал бы на беркли - не было бы проблем!
### structura berkley = $hash{name} = "surname";
use DB_File;
use Fcntl;
use CGI;
use strict;
my $berkley = tie my %names, "DB_File", "data/names.db" , O_RDWR|O_CREAT, 0666, $DB_HASH;
print $names{$CGI->param("request")};
## a esli imja po familii
foreach (keys(%names)) {
print $_ if ($names{$_} eq $CGI->param("request")); break;}
ПЕРЛ адназначна рулит, бросайте свой пакостный РНР
Сообщение изменено: zedirtybastard (19 июля 2006 - 19:23 )