perl – 实现一个简单的tac程序
发布时间:2020-12-16 06:19:12 所属栏目:大数据 来源:网络整理
导读:当我在编写的代码中发生意外输出时,我试图解决施瓦茨的“学习Perl”练习.我想知道我做错了什么. Qn:实现一个与unix实用程序类似的简单tac. 我的解决方案 #!/usr/bin/perluse strict;use warnings;my @array;while () { push @array,$_;}foreach ($#array..0
当我在编写的代码中发生意外输出时,我试图解决施瓦茨的“学习Perl”练习.我想知道我做错了什么.
Qn:实现一个与unix实用程序类似的简单tac. 我的解决方案 #!/usr/bin/perl use strict; use warnings; my @array; while (<>) { push @array,$_; } foreach ($#array..0) { print $array[$_]; } 使用:$./tac list实现它 列表包含: $cat list An apple Blue boys Coy cows Dreary ducks! 没有输出. $./tac list $ 解决方法
你的问题是foreach循环计数器.你不能这样倒退.
你可以这样做: while (@array) { print pop @array; } 要不就: print pop @array while (@array); while(@array)将在标量上下文中评估@array,这意味着将测试数组的大小.当大小达到零时,循环将终止. 由于这是perl,当然有一百万种方法可以做到这一点.另一个是: print for reverse @array …或者您可以使用unshift向后读取数组: #!/usr/bin/perl use strict; use warnings; my @array; while (<>) { unshift @array,$_; } print for @array; ……或者你甚至可以这样做: #!/usr/bin/perl use strict; use warnings; print reverse <>; 享受学习Perl! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |