逐行解析数组并将其爆炸成更多数组

逐行解析数组并将其爆炸成更多数组,第1张

概述我仍然在赚Perl,知道我还有很长的路要走,我一直在读O’Reilly的Perl书籍,还在Udemy学习一些课程,甚至还参加了Perl的Lynda课程. 我正在尝试编写一个备份程序来解决我的需求,但我似乎很难用我的一个功能. sub list { my @zfs_temp = `zfs list`; foreach (@zfs_temp) { my ($name, $use 我仍然在赚Perl,知道我还有很长的路要走,我一直在读O’Reilly的Perl书籍,还在Udemy学习一些课程,甚至还参加了Perl的Lynda课程.

我正在尝试编写一个备份程序来解决我的需求,但我似乎很难用我的一个功能.

sub List {    my @zfs_temp = `zfs List`;    foreach (@zfs_temp) {    my ($name,$used,$available,$refer,$mount) = split(/\s+/);    push(@name,$name);    push(@used,$used);    push(@available,$available);    push(@refer,$refer);    push(@mount,$mount);#    print "@name,@used,@available,@refer,@mount\n";    return (@name,@mount);    }}

似乎我只回到了一条线,我真的不确定我做错了什么,有人能指出我正确的方向吗?

谢谢

解决方法 你的问题在于你过早地回来了.

sub List {    my @zfs_temp = `zfs List`;    my (@name,@mount); #declared ahead of time and scoped appropriately     foreach (@zfs_temp) {        my ($name,$mount) = split(/\s+/);        push(@name,$name);        push(@used,$used);        push(@available,$available);        push(@refer,$refer);        push(@mount,$mount);    }    return (@name,@mount); #note how it's outsIDe the loop Now }

否则你只需在经过一次循环后返回,可能不是你想要的.

另外,你应该用my声明这些数组.否则Perl会在use strict下投诉,你应该经常使用.

欢迎来到Perl!

编辑:

正如Joel所指出的,您可能希望返回对这些数组的引用.它很容易做到,只需使用:

return (\@name,\@used,\@available,\@refer,\@mount);

如果你对此感到困惑,请查看perlref.

总结

以上是内存溢出为你收集整理的逐行解析数组并将其爆炸成更多数组全部内容,希望文章能够帮你解决逐行解析数组并将其爆炸成更多数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存