sen List::MoreUtils::natatime kullanabilirsiniz dokümanlar:.
my @x = ('a' .. 'g');
my $it = natatime 3, @x;
while (my @vals = $it->()) {
print "@vals\n";
}
natatime
XS uygulanan
Eğer verimlilik için tercih edilmelidir böylece sadece gösterim amaçlı, burada bir bir üç uygulamak nasıl olduğunu. Perl eleman yineleyici jeneratör:
#!/usr/bin/perl
use strict; use warnings;
my @v = ('a' .. 'z');
my $it = make_3it(\@v);
while (my @tuple = $it->()) {
print "@tuple\n";
}
sub make_3it {
my ($arr) = @_;
{
my $lower = 0;
return sub {
return unless $lower < @$arr;
my $upper = $lower + 2;
@$arr > $upper or $upper = $#$arr;
my @ret = @$arr[$lower .. $upper];
$lower = $upper + 1;
return @ret;
}
}
}
'$ a ve değişken isimler için $ b. Bunlar, 'sort' ile kullanım için özel olarak paketlenmiş kapsam değişkenleridir. –
Bunu yapabilseydin harika olurdu. –
türünün dışındaysanız, sorun değil. ama eğer bir tek liner ise yeniden kullanacaksın, muhtemelen daha sonra, o zaman dikkatli ol, doğru. :-) – eruciform