@a = ((1,2,3),("test","hello"));print @a[1]
我期待它打印
testhello
但它给了我2.
抱歉新手问题(Perl对我来说有点不自然),但为什么会发生这种情况,我怎样才能得到我想要的结果呢?
解决方法 Perl构造@a的方式是等同于你的写作,@a = (1,3,"test","hello");
这就是为什么当你通过编写@a [1](真的应该是$a [1])来索引索引1的值时,你会得到2.为了证明这一点,如果你要做以下事情,
use strict;use warnings;my @a = ((1,"hello"));my @b = (1,"hello");print "@a\n";print "@b\n";
两者都打印相同的行,
1 2 3 test hello1 2 3 test hello
你想要的是在你的数组中创建匿名数组 – 像这样,
my @c = ([1,3],["test","hello"]);
如果你写下面的,
use Data::Dumper;print Dumper $c[1];
你会看到这个打印,
$VAR1 = [ 'test','hello' ];总结
以上是内存溢出为你收集整理的perl – 如何获得子数组?全部内容,希望文章能够帮你解决perl – 如何获得子数组?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)