有下一个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;
答案 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;