LINUX.ORG.RU

perl-скрипт


0

1

Здраствуйте,помогите пожалуйста..

open(FH,"</home/yulya/11") or die $!;
 my $first_row = <FH>;
printf(STDERR "first_row: %s\n", $first_row);
close(FH);

    my $shell_curl = q!curl %s 2>/dev/null | iconv -f cp1251 -t utf-8 | sed -n -r -e '/<item>/,/<\/item>/{ /<description>/ { s/.*\[CDATA\[(.+)\]\].*/\1/; p; }; }'!;
    $shell_command = sprintf ($shell_curl, $first_row);

    my @citations = split(/[\n\r]+/, qx($shell_command));
printf(STDERR "first_row11: %s\n", @citations[0]);

    return @citations;
}
Переменную first_row читает из файла 11. Там она записана так: 'http://tratata/rss/' в shell_command уже вроде подставляет этот урл, но на выходе получается, что работает только curl, а на iconv и sed оно не передается. ПРичем если переменной просто присвоить етот адрес и ее подставлять вместо ферст_ров все работает. Что не так?

Внимание: прочитайте описание разметки LORCODE

anonymous ()

Что не так?

1) Ты не осилил LORcode
2) В $first_row попадает завершающий перевод строки и получается

curl %s
 2>/dev/null | iconv ...

redgremlin ★★★★★ ()
Ответ на: комментарий от qawsed

Судя по коду, ожидается виндовый перевод строки, так что так например:

my $first_row = <FH>;
$first_row =~ s/\r\n$//;

redgremlin ★★★★★ ()
Последнее исправление: redgremlin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.