2

在 perl 中使用引号单词时,列表中是否可以有 undef 值?

my @ number_array = qw( 1 2 3 4 5 6 7 8 9 10 )

我想知道是否可以在该列表中添加一个 undef 值,以便它包含 11 个值而不是 10 个?

4

2 回答 2

5

perl 中没有null,但您可以使用undef. 由于qw仅使用空格分隔的字符串显式操作,因此您必须在 之外指定它qw,但您可以轻松地在括号内编写几个列表:

my @number_array = (undef, qw( 1 2 3 4 5 6 7 8 9 10 ));
print scalar @number_array;

>11
于 2012-08-22T19:15:23.870 回答
5
qw(...)

相当于

(split(' ', q(...), 0))

至于您的问题的答案,这取决于您所说的“空”是什么意思。

  • 未定义?号split返回字符串。
  • 空字符串?不split,不能返回带有这些操作数的那些。
  • 零?是的。
  • U+0000?是的。

您将不得不通过另一种方式构建您的列表。例如,

my @array = (qw( 1 2 3 4 5 6 7 8 9 10 ), undef);

甚至类似的

my @array = (1..10, undef);
于 2012-08-22T19:28:28.077 回答