-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в web_development

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 09.03.2005
Записей:
Комментариев:
Написано: 418


Работа с CSV в Perl

Понедельник, 08 Мая 2006 г. 11:30 + в цитатник
Tatarnikoff все записи автора Всем привет!

Я изучаю Perl, смотрю у вас тут ни одного сообщения про него нет...
Вобщем возникло затруднение при написании кода, и если кто-то в этом разбирается, то буду рад помощи! :)

Проблем вот в чем:


code:

sub check_sells
{

open(CHECKFILE, "sells.csv"); #открываем файл CSV
#(записи типа:
#first;one
#apple;yellow
#mango;green
#...

while ()#читаем его построчно
{
push(@sells, $_);#и каждую строчку добавляем в массив @sells
}
close(CHECKFILE);

$tmp=qq[$FORM{'pin'};$FORM{'pwd'}];#это искомая строка

foreach $line (@sells)#просамтриваем массив @sells построчно
{
if ($line ne "$tmp")#если не находим, то ищем дальше
{
next;
}
else #если совпало, то переходим к другой подпрограмме и выходим
{
&step2;
exit;
}
}

&error_sells; #а если вообще не нашли, то переходим сюда.
}



Проблема в том, что этот в результате выполнения всегда выполняется &error_sells;

я уже не знаю в чём может быть проблема...
Рубрики:  Perl
Вопросы

Аноним   обратиться по имени Понедельник, 08 Мая 2006 г. 13:31 (ссылка)
Тут все дело в том, строки в текстовом файле завершаються с помощью спецсимволов \r\n
Либо просто \n
А «Яблоко» на равно “Яблоко\r\n”.

То есть от этих символов нужно избавиться:
$line=~ s/\n//g;
$line=~ s/\r//g;

Совет: Чтение из файла в массив лучше производить так:
Ответить С цитатой В цитатник
Tatarnikoff   обратиться по имени Понедельник, 08 Мая 2006 г. 17:13 (ссылка)
dvl999, да я предполагал, что проблема может быть в этом, но по видимому не правильно избавлялся от символов конца строки "\n".

Я делал это с помощю функции chop();
А именно так:
code:

if ($line !~ /^*\n/)
{
chop(@FORM



Это не правильно? Я еще специально сравнивал введенную пользователем строку и найденную в файле, даже если в обоих есть символ "\n" программа не видела этого, и вела себя словно эти строки не совпадают.
Ответить С цитатой В цитатник
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку