------ Error: off
--- Reset: off
$! 0:
--- Reset: on
$! 0:
--- Reset: off
$! 17: File exists
--- Reset: on
$! 0:
--- Reset: off
$! 17: File exists
--- Reset: on
$! 0:
------ Error: on
--- Reset: off
$! 17: File exists
--- Reset: on
$! 9: Bad file descriptor
--- Reset: off
$! 9: Bad file descriptor
--- Reset: on
$! 9: Bad file descriptor
--- Reset: off
$! 9: Bad file descriptor
--- Reset: on
$! 9: Bad file descriptor
####
use strict;
use warnings;
$|=1;
my $dh;
sub tst {
my ($mk_error, $reset_errno)=@_;
mkdir "/tmp/bla";
opendir $dh, "/tmp/bla" or warn "$!";
rmdir "/tmp/bla" if $mk_error;
$!=undef if $reset_errno;
my $a= scalar readdir($dh);
print "\n\$! ",$!+0,": $!\n" ;
}
for my $mk_error (0,1) {
print "\n\n------ Error: ", (qw(off on))[$mk_error] ;
for my $reset_errno (0,1,0,1,0,1) {
print "\n--- Reset: ", (qw(off on))[$reset_errno] ;
tst($mk_error,$reset_errno) ;
}
}
####
perl -version
This is perl, v5.10.0 built for i486-linux-gnu-thread-multi