no, it seems to me it always, only dies on close:
#this not dies
perl -e 'open FH, ">", "/dev/full" or die $!; for (1..100) {print FH "
+line\n" or die $!;} '
#this too not dies
perl -e '$|++;open FH, ">", "/dev/full" or die $!; for (1..100) {prin
+t FH "line\n" or die $!;} '
#only this dies, on close
perl -e 'open FH, ">", "/dev/full" or die $!; for (1..100) {print FH
+"line\n" or die $!;}; close FH or die $!'
No space left on device at -e line 1.
UPDATE: as suggested by
choroba 100 are few (magic number seems to be 820):
# this still does not die
perl -e '$|++;open FH, ">", "/dev/full" or die $!; for (1..819) {print
+ FH "line\n" or die $!;} '
#but this dies!
perl -e '$|++;open FH, ">", "/dev/full" or die $!; for (1..1000) {pri
+nt FH "line\n" or die $!;} '
No space left on device at -e line 1.
820 is to much? Perl becomes bored after 820 errors (not spotted)? is very patient: i'm hurted by second error.. ;=)
# perl -e 'print "$_\n" for 1..10000' | perl -ne '$num = <STDIN>;print
+ "$num:";open FH, ">", "/dev/full" or die $!; for (1..$num) {print FH
+ "line\n" or die $!;};close FH;'
..
:816
:818
:820
No space left on device at -e line 1, <STDIN> line 410.
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.