[devel] Re: Fwd: [AMaViS-user] Perl on Linux bug when reading and the last line does not terminate by a newline
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Май 15 22:42:43 MSD 2005
On Sun, May 15, 2005 at 09:21:25PM +0400, Alexey Shabalin wrote:
> День добрый.
> У нас вроде тоже самое.
> Чем это может грозить?
Это гонево какое-то.
> > http://marc.theaimsgroup.com/?l=amavis-user&m=111458535106056
$ echo -n 'xxxx' | perl -e 'undef $!; while(<>){last if $_ eq "\n"}; $!==0 or die $!'
Bad file descriptor at -e line 1, <> line 1.
$
Это вовсе не ошибка. $! -- это errno, его нельзя в произвольном месте
программы проверять, а *только* сразу после вызова функции, которая
вернула "плохой статус" (undef) и которая в этом случае документированно
устанавливает errno. Т.е.
# правильное использование errno:
open(...) or die $!;
# редиски:
{ ... }
$!==0 or die $!;
Посмотрите в errno(3), там то же самое написано.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20050515/3ee3ff39/attachment-0001.bin>
Подробная информация о списке рассылки Devel