my $fh = ...; # Maybe a filehandle, maybe not... if ( eval { fileno $fh } ) { ...# Yes it is # ... } else { ...# No it isn't, with $@ having details... # }