Хм, это одна из причин использования Readonly вместо постоянного. Вы можете использовать &
старт или ()
в конце константы, чтобы получить Perl для реализации подпрограммы. Дай мне проверить.
Нет, но вы можете использовать классический трюк создания ссылки на массив разыменовать:
#!/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/*>;
Итак, у меня нет доступного модуля Readonly :(.. будет использовать только опцию glob. – grilix
Readonly находится в CPAN, выполните поиск, как настроить CPAN на вашей ОС или, если вы используете Linux, посмотрите на пакеты доступны в вашем дистрибутиве (Readonly скорее всего был упакован для вас). В Ubuntu он называется libreadonly-perl –