Первый метод, который вы показали, является более новым и обычно выгодным. Он использует лексические дескрипторы файлов (дескрипторы файлов, которые имеют лексическую область видимости). Второй метод использует файловые дескрипторы глобальных типов пакетов. Их сфера охвата шире. Современные программы на Perl обычно используют версию «my», если только у них нет веских причин не делать этого.
Вы должны взглянуть на perlopentut (из документации Perl) и perlfunc -f open (из Perl POD) . Эти два ресурса дают вам много полезной информации. Пока вы там, посмотрите версию с тремя аргументами open, а также проверку ошибок. Действительно хороший способ открыть файл в настоящее время:
open my $file_handle, '>', $filename or die $!;