Thread matrix in loop aufbauen mit Referenzen als zeilen
(7 answers)
Opened by kajax01 at 2011-02-09 20:29
Es gibt mehrere Möglichkeiten Zweidimensionale Arrays (Matrizen) zu erzeugen.
Jedes hat seine Vorzüge. Wichtig dabei sind dabei das wissen um zwei Dinge. Man muss wissen was Referenzen sind und was Autovivikation ist. Refenzen sind Verweise auf Variablen und Autovivikation das ist die Fähigkeit von perl Referenzen selbständig zu erzeugen wenn sie benötigt werden und noch nicht existieren. Siehe dazu auch perlreftut perlref Anhand von Beispielen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/usr/bin/perl use strict; use warnings; my @matrix; for(1..5) { push(@matrix,[]); for(1..5) { push(@{$matrix[-1]},"A") } } # Ausgabe: print join(', ', @$_), "\n" for(@matrix); oder: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/perl use strict; use warnings; my @matrix; my $count_down=5; while($count_down>0) { push(@matrix,[split(/,/,'A,A,A,A,A')]); $count_down--; } # Ausgabe: print join(', ', @$_), "\n" for(@matrix); oder Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/perl use strict; use warnings; my @matrix; for my $y (0..4) { formy $x (0..4) { $matrix[$y][$x]='A'; } } # Ausgabe: print join(', ', @$_), "\n" for(@matrix); oder Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/perl use strict; use warnings; my @matrix; my $count=0; while($count<5) { my @zeile=split(/,/, 'A,A,A,A,A'); $matrix[$count]=\@zeile; $count++; } # Ausgabe: print join(', ', @$_), "\n" for(@matrix); EDIT: Danke für den Hinweis. Fehlende Kommata ergänzt. Last edited: 2011-02-12 06:21:52 +0100 (CET) |