Hi,
open (DAT , "<daten/variables.csv");
open(DAT, '<daten/variables.csv') or die "Kann variables.csv nicht oeffnen: $!";
while ($var_line=<DAT>)
while (my $var_line=<DAT>) {
(Du hast doch 'use strict;' eingebunden und 'perl -w' in die Shebang geschrieben, oder?)
push ( @vars , $var_line );
Hm. Da reicht ein
my @vars = <DAT>;
Außerdem steht in perldoc perlstyle einiges zu Klammer- und IIRC auch über Kommasetzung drin... ;-)
$lines=0;
foreach $var_line (@vars)
for (my $lines=0; $lines<scalar @vars; $lines++) {
Außerdem kannst Du das eigentlich auch machen, während Du die Datei zeilenweise einliest. Du brauchst die Daten schließlich nur im Hash, nicht zusätzlich im Array, oder?
push ( @temp , [ split(/;/ , $var_line) ] );
Gar nicht übel. Ich würde aber in
perldoc -f split
nachlesen, was der optionale dritte Parameter bewirkt ;-) und erst mal Name und Wert der Zeile in 'my ($name, $wert) = split(...);' speichern.
jetzt hab ich aber alles im @temp.
Richtig. Du willst es aber in %vars haben, um auf $vars{'bla'} zugreifen zu können. Also was tust Du? ;-)
wenn ich mich richtig erinner', kann ich jetzt die einzelnen felder ala $temp[0][1] oder so ansprechen,
Nönö, Lists Of Lists sind in Perl (leider) ein wenig komplizierter. Wenn's Dich interessiert, lies perldoc perllol - aber für ein Hash brauchst Du das nicht.
aber wie krieg ich das hin, das $temp[0][0] (variablenname) nun mal zur variable wird, der dann auch noch $temp[0][1] (variableninhalt) zugewiesen wird?
Falscher Datentyp ;-) Siehe perldoc perldata
Cheatah