[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