use constant {
COLUMNS => qw/ TEST1 TEST2 TEST3 /,
}
我可以使用 Perl 中的常量包存储数组吗?
每当我继续尝试使用数组 likemy @attr = (COLUMNS);
时,它都不包含值。
use constant {
COLUMNS => qw/ TEST1 TEST2 TEST3 /,
}
我可以使用 Perl 中的常量包存储数组吗?
每当我继续尝试使用数组 likemy @attr = (COLUMNS);
时,它都不包含值。
或删除文档显示的花括号:-
1 use strict;
2 use constant COLUMNS => qw/ TEST1 TEST2 TEST3 /;
3
4 my @attr = (COLUMNS);
5 print @attr;
这使 :-
% perl test.pl
TEST1TEST2TEST3
您的代码实际上定义了两个常量 COLUMNS 和 TEST2 :-
use strict;
use constant { COLUMNS => qw/ TEST1 TEST2 TEST3 /, };
my @attr = (COLUMNS);
print @attr;
print TEST2
并给出:-
% perl test.pl
TEST1TEST3
使用 a+
表示它是一个常量。
use constant {
COLUMNS => [qw/ TEST1 TEST2 TEST3 /],
};
print @{+COLUMNS};
这+
是对解释器的提示,即该常量实际上是一个常量,而不是一个简单的词。有关更多详细信息,请参阅此回复。