相关疑难解决方法(0)

Perl数组vs列表

我在Perl中有两个数据结构:

数组:

my @array2 = ( "1", "2", "3");

for $elem (@array2) {
    print $elem."\n";
}
Run Code Online (Sandbox Code Playgroud)

给我以下输出:

1
2
3
Run Code Online (Sandbox Code Playgroud)

还有一个清单:

my @array = [ "1", "2", "3"];                                            

for $elem (@array) {
    print $elem."\n";
}
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

ARRAY(0x9c90818)
Run Code Online (Sandbox Code Playgroud)

显然,我想在两种情况下迭代元素,但为什么第二种解决方案只给我这个数组的引用?

arrays perl perl-data-structures

41
推荐指数
4
解决办法
5万
查看次数

perl获取对函数返回的临时列表的引用而不进行复制?

我在perl中有一个返回列表的函数.我的理解是,当foo()被分配给列表时,副本被制作:

sub foo() { return `ping 127.0.0.1` }

my @list = foo();
Run Code Online (Sandbox Code Playgroud)

@list则需要被转移到另一个列表一样@oldlist = @list;,另一个副本.所以我想我可以从返回的列表中做出引用my $listref = \foo();,然后我可以分配该引用,但这不起作用.

我正在使用的函数运行一个返回一个相当大的列表的命令(ping命令仅用于示例目的),我经常调用它,所以我想尽可能减少副本.什么是处理这个问题的好方法?

perl

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

标签 统计

perl ×2

arrays ×1

perl-data-structures ×1