Perl语法错误打印列表索引

时间:2014-12-30 23:12:09

标签: perl

我正在尝试打印函数调用返回的列表的索引。我将函数调用包装在括号中,试图将列表转换为数组。该程序无法编译在file.pl第4行附近的语法错误,附近")["'。如果我创建一个临时变量$ a或使用printf索引就可以了。为什么打印刹车,有更好的选择吗?

sub get{
    return (1,2);
}
#print (get())[0]; #fails
printf("%d",(get())[0]);
my $a = (get())[0];
print $a;

2 个答案:

答案 0 :(得分:4)

我认为你愚蠢地不使用

use warnings;

不这样做是件坏事。如果您使用过它,您会收到警告:

print (...) interpreted as function

也就是说,你写的是什么

print (get())[0]

当您尝试在print()函数上放置下标时Perl会解释。这不起作用。

要使代码完成您的预期,您需要明确括号:

print ( (get())[0] );

你应该总是使用

use strict;
use warnings;

使用这些曲线有一点点学习曲线,但它们只会向您显示错误。不使用它们只会隐藏您的错误,并且您的代码无法正常工作。

答案 1 :(得分:0)

试试这个:

sub get{
    return (1,2);
}
print((get)[0]);

my $a = (get)[0];
print $a;

输出

1