Этот script:
#!/usr/bin/perl
use strict;
use warnings;
my ${fh};
open($fh, '<', "some_file.txt") or die "fail\n";
while(my $line = <${fh}> ) {
print $line;
}
close $fh;
выходы:
GLOB(0x5bcc2a0)
Почему это вывод?
Если я изменил <${fh}>
на <$fh>
, он будет печатать some_file.txt
по очереди, как ожидалось. Я думал, что скобки могут использоваться для разграничения имен переменных и что my ${var}
будет таким же, как my $var
.
Существуют ли другие сценарии, в которых добавление {}
вокруг имени переменной вызывает проблемы?
Я пробовал на Perl 5.8.8 на Red Hat и Cygwin Perl 5.14.