It is better to use $filehandler
because your filehandles will be lexically scoped. It means you won't accidentally sabotage or clash with another filehandle. You'll get a warning if you try to declare another variable with the same name. This format was introduced in Perl 5.6 so it is a newer format.
Bareword filehandles are global names. You could overwrite an existing filehandle with the same name without knowing it. It could cause some confusion if you have a constant or subroutine with the same name. And you probably won't get any warnings if you do have any of these clashes.
btw, this is one of the items listed in Perl Best Practices by Damian Conway. It's also better to use the 3-arg form of open: open my $fh, '<', $file
.