小编Zho*_* Wu的帖子

如何访问从 Perl 中的对象方法返回的数组元素?

我使用 Perl 一段时间了,但被一个语法问题困扰。在某些包中,方法可以返回数组。例如

$root->getlist();
Run Code Online (Sandbox Code Playgroud)

将返回一个数组。现在我想获取结果的第一个元素。我当然可以这样做:

my @results = $root->getlist();
if($results[0] =~ /wow/) {
    print "Qualified result";
}
Run Code Online (Sandbox Code Playgroud)

然而,这样很麻烦。有没有办法可以将第一行和第二行合并?我尝试过这个但失败了。

if(${$root->getlist()}[0] =~ /wow/) {
    print "Qualified result";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法快速做到这一点?

一个更好的例子:考虑以下包:

package Try;

sub new {
    my $package = shift;
    return bless({}, $package);
}

sub getList {
    return (1,2,3,4,5);
}

1;
Run Code Online (Sandbox Code Playgroud)

现在我有一个像这样的用户 pl 文件:

use lib '.';
use Try;
use strict;

my $obj = Try->new();
print ($obj->getList())[0];
Run Code Online (Sandbox Code Playgroud)

尝试运行此脚本将导致:

perlarrayaccess.pl 第 6 行“)[”附近的语法错误

由于编译错误,perlarrayaccess.pl 的执行中止。

arrays syntax perl

2
推荐指数
1
解决办法
1579
查看次数

标签 统计

arrays ×1

perl ×1

syntax ×1