Re[3]: работа с CSV
Вот так выглядит sells.csv
BEGIN first;second
apple;gold
russian;english
russian2;english2
russian3;english3
END Сам файл обработки выглядит также, как у Вас (с некоторыми изменениями)
BEGIN use strict;
open(CHECKFILE, "sells.csv");
my @sells=<CHECKFILE>;
close(CHECKFILE);
my %FORM=('pin'=>'russian','pwd'=>'english');
my $tmp=qq[$FORM{'pin'};$FORM{'pwd'}];
foreach my $line (@sells)
{
chomp $line;
if ($line ne $tmp)
{
print "$line NOT_EQUAL $tmp\n";
next;
}
elsif ($line eq $tmp)
{
print "$line EQUAL $tmp\n";
exit;
}
else
{
print 'Error';
exit;
}
}
END Такой вариант работает?
-----Original MessageFrom: Ilya [mailto:il***@r*****.com]
Sent: Wednesday, May 10, 2006 9:22 PM
To: inet.webbuild.webbuilding (5090336)
Subject: Re[2]: работа с CSV
Здравствуйте, Sledge.
> А что конкретно не выходит?
Вообще ничего не выходит :( Постоянно выполняется &error_sells; даже если
$line eq $tmp. Я думал, что проблема может быть в том, что строки $tmp и
$line могут различасться из-за наличия в какой-нибудь знака конца строки.
Здесь я его убираю $line =~ s/\n//g;, если он есть, но программа всё равно
ведет себя так, словно совпадающие строки не найдены...
open(CHECKFILE, "sells.csv");
while (<CHECKFILE>)
{
push(@sells, $_);
}
close(CHECKFILE);
$tmp=qq[$FORM{'pin'};$FORM{'pwd'}];
$tmp =~ s/\n//g;
foreach $line (@sells)
{
$line =~ s/\n//g;
if ($line ne $tmp)
{
next;
}
elsif ($line eq $tmp)
{
&step2;
exit;
}
else
{
&error_sells;
exit;
}
}
Вы писали 7 мая 2006 г., 12:52:43:
> А что конкретно не выходит?