URL: https://www.overclockers.at/coding-stuff/perl_mehrdimensionales_array_205891/page_1 - zur Vollversion wechseln!
So, folgendes Problem.
Muss in Perl ein Mehrdimensionales Array bearbeiten, bin Anfänger in PERL und hab keine Ahnung wie.
Das war mal mein Versuch:
Code: PHPuse IO::Handle; #Öffnen der Files my $in = IO::Handle->new; my $out = IO::Handle->new; open $in, "<Tabelle.csv" or die "Quelle konnte nicht geöffnet werden! $!"; open $out, ">output.dnd" or die "Output konnte nicht erstellt werden! $!"; #Definition der Variablen my @daten = ($in->getlines()); my @matrix = {[],[]}; for(my $y=0;$y<60;$y++) { my @personal = split(/;/, $daten[$y]); print @personal; push(@matrix, @personal ); } print "Hier ist Sense"; print @matrix; #print "Aloha"; print "$matrix[2600]"; close($in)



Das war der Sample-Code an dem ich mich versucht hab zu orientieren, aber ich kann ja nicht händisch 60 Zeilen machen ?Code: PHP#!/usr/local/bin/perl -w use strict; my @zeile_1 = ( 'a', 'b', 'c' ); my @zeile_2 = ( 'd', 'e', 'f' ); my $ref_zeile_1 = \@zeile_1; my $ref_zeile_2 = \@zeile_2; my @matrix = ( $ref_zeile_1, $ref_zeile_2 );

also sollte es funktionieren:
Code: PHPfor(my $y=0;$y<60;$y++) 14: { my @personal = split(/;/, $daten[$y]); $matrix[$y] = @personal; }
Danke für den Tipp.
Der hat zwar nicht funktioniert, mich aber auf die richtige Fährte gebracht 
Das ganze war insofern falsch, als das ich split einfach nicht auf Skalare anwenden kann, sondern nur auf Arrays, und da hat's dann nen Hund gehabt beim übertragen auf die matrix. Wenn ich den String mit =~ untersuche und in ein 1D-Array speicher, und dass dann transformier, komme ich zu einem brauchbaren output 
btw. Falls es wer weiß. Kann ich mehrdimensionale Arrays nicht "einfach" ausgeben ? Ich hab immer nur die Pointer der einzelnen Tabellen, wenn ich aber gezielt nen Wert ansprech geht's sowieso 
http://perldoc.perl.org/perllol.html hast du gelesen, oder?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026