在perl中打印列表的前几个元素

时间:2013-07-19 18:54:00

标签: perl

有下一个perl代码

use 5.012;
use warnings;

#make some random numbers
my @list = map { rand } 1..10;

say "print all 10 numbers";
say $_ for @list;

say "print only first 5";
my $n=0;
for (@list) {
        say $_ if $n++ < 5;
}

用于打印任何数组的第一个(最后一个)N个元素的更紧凑的形式?

接下来是语法错误......

$n=0;
#say $_ if($n++ < 5) for @list;

4 个答案:

答案 0 :(得分:10)

打印前5项:

say for @list[0 .. 4];

打印最后5项:

say for @list[-5 .. -1];

答案 1 :(得分:3)

只需使用list slice

#!/usr/bin/perl
use strict;

my @list = map { int(rand*10) } 1..10;
print join(', ', @list[0..4]) . "\n";

另外,use strict,无一例外,除非你真的喜欢花太多时间寻找细微的范围错误。

答案 2 :(得分:2)

使用while循环编写它的另一种方法。

my $i = 0;
say $list[$i++] while $i < 5;

答案 3 :(得分:0)

另外,一种破坏性的方法:

splice @list, 5;
say for @list;