[devel] Re: Fwd: [AMaViS-user] Perl on Linux bug when reading and the last line does not terminate by a newline

Alexey Tourbin at на altlinux.ru
Вс Май 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), там то же самое написано.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.ru/pipermail/devel/attachments/20050515/3ee3ff39/attachment.bin


Подробная информация о списке рассылки Devel