Leser: 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use strict; use Data::Dumper; my %data = ( l1 => ['x1', 'x2', 'x3'], l2 => ['y1', 'y2', 'y3', 'y4'], l3 => ['z1', 'z2', 'z3', 'z4', 'z5'], ); my $anz_listen = 3; my @liste = (); for (my $i=0; $i<$anz_listen; $i++) { print "Schleifendurchlauf '$i' ...\n"; if ($i==0) { @liste = @{$data{'l'.($i+1)}} } else { my $laenge_akt = @{$data{'l'.($i+1)}}; my @list_bak = @liste; @liste = (); for (my $j=0;$j<$laenge_akt;$j++) { push @liste, map{$_.'-'.$data{'l'.($i+1)}[$j]}(@list_bak); } # for } # else print Dumper(\@liste)."\n"; } # for
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use strict; use warnings; my %data = ( l1 => ['x1', 'x2', 'x3'], l2 => ['y1', 'y2', 'y3', 'y4'], l3 => ['z1', 'z2', 'z3', 'z4', 'z5'], ); my @liste = (); for my $i (0 .. (keys %data) - 1) { my $key = 'l' . ($i+1); my $current = $data{$key}; print "Schleifendurchlauf '$i' ...\n"; if ($i == 0) { @liste = @$current } else { my @list_bak = @liste; @liste = (); for my $j (0 .. $#$current) { push @liste, map { "$_-$current->[$j]" } @list_bak; } } print Dumper \@liste; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %data = ( l1 => ['x1', 'x2', 'x3'], l2 => ['y1', 'y2', 'y3', 'y4'], l3 => ['z1', 'z2', 'z3', 'z4', 'z5'], ); my @liste=(); for my $key (sort{ my ($x)=$a=~/(\d+)/; my ($y)=$b=~/(\d+)/; return $x <=> $y}keys(%data)) { print "LISTE: $key\n"; my @l_bak=@liste; @liste=(); if(@l_bak) { for my $val (@{$data{$key}}) { push(@liste,map{"$_-$val"}@l_bak); } } else { @liste=@{$data{$key}}; } } print Dumper(\@liste);