in reply to Bad file descriptor when trying to close file handle
You are checking the wrong thing for defined().
#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11141789 use warnings; my $filename = 'tmp.11141789'; open my $fh, '>>', $filename or die "$! opening $filename"; printf "1) fileno = %s\n", $fh->fileno // 'undefined'; close $fh or die "$! closing $filename"; printf "2) fileno = %s\n", $fh->fileno // 'undefined'; close $fh or die "$! closing $filename"; printf "3) fileno = %s\n", $fh->fileno // 'undefined'; close $fh or die "$! closing $filename";
Outputs:
1) fileno = 3 2) fileno = undefined Bad file descriptor closing tmp.11141789 at ./pm11141789.pl line 12.
This was run on ArchLinux, I don't have a Strawberry Perl system to test on.
|
|---|