/home/alex>perl -Mstrict -w -E 'my $f="foo"; say defined(fileno($f)) ? "filehandle" : "not a filehandle"' not a filehandle /home/alex>perl -Mstrict -w -E 'open my $f,"<","/dev/null"; say defined(fileno($f)) ? "filehandle" : "not a filehandle"' filehandle /home/alex>perl -Mstrict -w -E 'open my $f,"<",\my $mem; say defined(fileno($f)) ? "filehandle" : "not a filehandle"' filehandle /home/alex>perl -Mstrict -w -E 'close STDIN; open my $f,"<","/dev/null"; say defined(fileno($f)) ? "filehandle" : "not a filehandle"' filehandle /home/alex>