Отправляет email-рассылки с помощью сервиса Sendsay

Скрипты для сайта.

работа с CSV

Всем привет!

У меня возникла такая задача:

Есть файл sells.csv с записями вроде:
first;second
apple;gold
russian;english
...
По размеру не очень большой - пара килобайт.

Нужно в Perl'e сделать вот что:

просмотреть файл по строкам
если "$a;$b" есть в этом файле, то сделать то-то и удалить из файла
строчку, которая совпала с этим выражением
Если "$a;$b" вообще нет в этом файле, то сделать то-то

Я принцип действий понимаю, но что-то у меня не выходит...

Вроде нужно сделать так:
sells.csv построчно добавить в массив
затем просматривая этот массив искать "$a;$b"
если найдено то удалить из массива эту строку и снова все записать в
файл а потом сделать "что-то"
Если нет, то продолжать искать
Если вообще нет, то сделать "что-то"

а вот с кодом проблем.
Помогите, кому не лень. :)

Спасибо.

Ответить   Ilya Sat, 6 May 2006 21:54:05 +0400 (#546257)

 

Ответы:

-----BEGIN PGP SIGNED MESSAGEHash: SHA1

Ilya wrote:

Можно и так.
А можно сделать по-другому: посмотреть в сторону dev-perl/Text-CSV_XS
(comma-separated values manipulation routines).
Т.е. это модуль для работы с CSV.

Конкретнее в чем проблема?
Программу за вас (бесплатно) писать никто не станет.

- --
WBR, Vladimir Rusinov aka B.
Random quote (424 of 1050):
"Hello World!" 17 errors, 31 warnings.
-----BEGIN PGP SIGNATUREVersion: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEXeR1Z4E7sNcp26sRAh2SAJ9JOT07sbo6w8FDK+5Ds/S3lG/wDgCfVfGO
QmSx8ooA1BeZC1z6Gp7l4jg=
=tRAG
-----END PGP SIGNATUREНомер выпуска : 103
Возраст листа : 632 (дней)
Количество подписчиков : 138
Адрес в архиве : http://subscribe.ru/archive/inet.webbuild.scripttalk/msg/546279
Получить правила : mailto:inet.webbuild.scripttalk-rules@subscribe.ru
Формат "дайджест" : mailto:inet.webbuild.scripttalk-digest@subscribe.ru
Формат "каждое письмо" : mailto:inet.webbuild.scripttalk-normal@subscribe.ru
Формат "читать с веба" : mailto:inet.webbuild.scripttalk-webonly@subscribe.ru

Ответить   Sun, 07 May 2006 16:13:43 +0400 (#546279)

 

Здравствуйте, Vladimir.

А где его можно скачать?

Проблема где-то здесь: т.е. почему-то этот отрезок кода не работает.

sub check_sells
{

open(CHECKFILE, "sells.csv");
while (<CHECKFILE>)
{
push(@sells, $_);
}
close(CHECKFILE);

$tmp=qq[$FORM{'pin'};$FORM{'pwd'}];

foreach $line (@sells)
{
if ($line ne $tmp)
{
next;
}
elsif ($line eq $tmp)
{
#здесь надо еще как-то удалить $line из @sells
&step2;
exit;
}
else
{
&error_sells;
exit;
}
}
}

Вы писали 7 мая 2006 г., 16:13:43:

Ответить   Ilya Mon, 8 May 2006 11:57:18 +0400 (#546419)