Perl常量数组

时间:2013-08-12 13:34:35

标签: perl

use constant {
    COLUMNS => qw/ TEST1 TEST2 TEST3 /,
}

我可以使用Perl中的常量包来存储数组吗?

每当我继续尝试使用像my @attr = (COLUMNS);这样的数组时,它都不包含值。

2 个答案:

答案 0 :(得分:11)

或删除大括号docs显示: -

  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

答案 1 :(得分:7)

use constant {
  COLUMNS => [qw/ TEST1 TEST2 TEST3 /],
};

print @{+COLUMNS};