Хм, это одна из причин использовать Readonly вместо константы. Вы можете использовать &
start или ()
в конце константы, чтобы Perl понял, что это подпрограмма. Позвольте мне проверить.
Нет, но вы можете использовать классический прием для создания arrayref для разыменования:
#!/usr/bin/perl
use strict;
use warnings;
use constant DIR => "/tmp";
print map { "$_\n" } <${[DIR]}[0]/*>;
Но так как glob "*"
совпадает с <*>
, вы можете предпочесть:
#!/usr/bin/perl
use strict;
use warnings;
use constant DIR => "/tmp";
print map { "$_\n" } glob DIR . "/*";
Я бы, наверное, сказал
#!/usr/bin/perl
use strict;
use warnings;
use Readonly;
Readonly my $DIR => "/tmp";
print map { "$_\n" } <$DIR/*>;