如何获取 Perl 常量列表中的项目数?

问题描述 投票:0回答:1

文档指出标量上下文中的列表常量当前返回值的数量,但这在将来可能会改变。它还指出,要将列表常量用作数组,请将其放在括号中。那么,获取列表常量中值的数量的正确方法是什么,以及我在下面的代码中做错了什么?我收到错误: 裸字在 D:\Batch/list-const-error.pl 第 5 行“@(INFOFIELDS”附近找到了操作员期望的位置 (INFOFIELDS 之前缺少运算符?) D:\Batch/list-const-error.pl 第 5 行的语法错误,靠近“@(INFOFIELDS” 谢谢。

use strict;
use warnings;
use constant INFOFIELDS  => qw( filedate filetime filesize mtime filename );
use constant OUTTEMPLATE => '   A9       A7       A12      A12   A* ';
use constant NELEMENTS   => scalar @(INFOFIELDS);
my $line = pack( OUTTEMPLATE, @ARGV[0..NELEMENTS] );
print( "$line\n" );
list perl compile-time-constant
1个回答
0
投票

常量基本上是一个子例程,因此您只需使用

scalar INFOFIELDS()
scalar &INFOFIELDS
即可访问常量列表中的项目数。

© www.soinside.com 2019 - 2024. All rights reserved.