#!/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"; #### 1) fileno = 3 2) fileno = undefined Bad file descriptor closing tmp.11141789 at ./pm11141789.pl line 12.