perl – 实现一个简单的tac程序

前端之家收集整理的这篇文章主要介绍了perl – 实现一个简单的tac程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在编写的代码中发生意外输出时,我试图解决施瓦茨的“学习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!

猜你在找的Perl相关文章