|< 1 2 >| | 11 Einträge, 2 Seiten |
1 2 3 4
for(my $i = 0; $i < scalar @array && $i < 10; $i++) { print $array[$i] . "\n"; }
1 2 3 4 5 6 7 8 9 10 11
sub fisher_yates_shuffle { my $array = shift; my $i; for ($i = @$array; --$i;) { my $j = int rand($i+1); next if $i == $j; @$array[$i,$j] = @$array[$j,$i]; } }
1 2 3
for(my $i = 0; $i < scalar @array && $i < 10; $i++) { print $array[$i] . "\n"; }
1 2 3 4 5 6 7 8 9 10 11 12
use List::Util qw( min ); for my $v ( @arr[ ( 0 .. min(9,$#arr) ) ] ) { print $v; } # oder lesbarer for my $i ( 0 .. min($#arr,9) ) { my $v=$arr[$i]; print $v; }
Gast+2008-10-22 22:55:58--Hallo Freunde der Sonne,
Ich stehe total auf dem Schlauch. Ich will in einer Schleife nicht alle Elemente eine Arrays abarbeiten und dann die Schleife verlassen, sondern nur x Elemente. Also genauer 10 Elemente.
Normalerweise schreibe ich for my $i(@array) {...}
Aber wie kann ich mich dabei nur auf die ersten x Elemente beschränken???
Beste Grüße aus dem kalten Berlin.
1 2 3 4 5 6
my $max_count = 10; for my $idx ( 0 .. $#array ) { # do whatever last if $idx >= $max_count; }
1 2 3 4 5
my $max_count = 10; for my $elem( splice( @array, 0, $max_count ) ) { # do whatever }
Gast+2008-10-23 07:27:13--wie von LanX nur ohne Modul:
FoolAck+2008-10-23 20:13:37--Die splice-Lösung entfernt aber die ersten 10 Elemente des Arrays. Bin mir nicht sicher, ob das gewollt ist.
FoolAck+2008-10-23 20:13:37--Man könnte zwar statt @array einfach @{ [@array] } nehmen, aber irgendwie sieht das auch nicht so schön aus.
1 2 3 4 5 6 7 8 9 10 11
#! /usr/bin/perl -l use strict; use warnings; my @array = ( 1..3 ); my $max = 5; for ( @array[0..$max-1] ) { last if !defined; print; }
|< 1 2 >| | 11 Einträge, 2 Seiten |