Localizing a typeglob to get a scope-bound filehandle is not necessarily a good idea for various other reasons as well. Why not simply:
open my($fh), "<", $filename or die "open $filename: $!$/";
If that's an issue due to old Perl version, there's still Symbol::gensym, and a short wrapper function will make its use nearly as concise as the above snippet.