用perl打印列表的前几个元素
有下一个perl代码用perl打印列表的前几个元素,perl,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; } 使用5.012; 使用警告; #做一些随机数 my
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;
}
使用5.012;
使用警告;
#做一些随机数
my@list=map{rand}1..10;
说“打印所有10个数字”;
对@list说$u;
说“只打印前5页”;
我的$n=0;
for(@list){
如果$n++<5,则说$u;
}
打印任何数组的前(后)N个元素的更紧凑的形式
下一个是语法错误
$n=0;
#say $_ if($n++ < 5) for @list;
$n=0;
#对@list说$uIf($n++<5);
只需使用:
此外,
毫无例外地使用严格的
,除非你真的喜欢花太多时间寻找细微的范围错误。要打印前5项:
say for @list[0 .. 4];
say for @list[-5 .. -1];
要打印最后5项,请执行以下操作:
say for @list[0 .. 4];
say for @list[-5 .. -1];
另一种编写方法是使用
while
循环
my $i = 0;
say $list[$i++] while $i < 5;
my$i=0;
说$list[$i++],而$i<5;
此外,破坏性方法:
splice @list, 5;
say for @list;
我认为默认情况下,
use5.012
pragma导入strict
,但这一点很好,特别是因为use5.012
不仅可以防止脚本在较旧的Perl下运行,无论其中是否有5.12的新内容,而且,这一点很好。我每个脚本的前两行包括use strict;使用警告
@AaronMiller第二个链接显然不知道使用了什么5.010
可以,因为没有它,相关代码就无法编译。而且,不,在顶部有一长串样板文件不是更好的。如果有样板文件,就尽可能地减少它。@darch Which link;如何实现?有关更多详细信息,请参阅perldoc perldata
,并搜索/Slices/注意,如果@list
的元素少于5个,则第一个元素将创建它们(因此@list
将有5个元素,其中一些元素之后将未定义)第二个将失败并出现错误。如果数组中没有5个元素,如何从一开始最多获取5个元素,而不是添加undef?