Thread CSV-Datei ohne Modul schreiben
(15 answers)
Opened by Stuermchen at 2011-07-12 09:07 Quote Du bist auf dem Weg, Spaghetti-Code zu schreiben. Beim Coden allein mit dem [index] verlierst Du schnell die Übersicht, welche Du bekommen könntest, indem Du den Spalten Namen gibst. Deine erste Zeile hat die Namen der Directories. dir1;dir2; usw. In einem Array wäre dir1 in [0], dir2 in [1] usw. Wie wäre es mit Namen? Guck mal: Code (perl): (dl
)
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 30 package Names; ########################################################################### # Rolf Rost, 14.2.2011 # Anonyme Array-Elemente bekommen Namen ########################################################################### use strict; # Setzt ein Array in ein Objekt um sub new{ my $class = shift; my $maps = shift; # {3 => 'Day', 4 => 'Month', 5 => 'Year'} my $aref = shift; # p.e. from localtime, stat, etc. return if ref $maps ne 'HASH'; return if ref $aref ne 'ARRAY'; my $self = {}; for(my $i = 0; $i < scalar(@$aref); $i++){ $self->{$maps->{$i}} = $aref->[$i] if exists $maps->{$i}; } return bless $self, $class; } 1; ######################################################################## #package main; #my $ref = Names->new({3 => 'Day', 4 => 'Month', 5 => 'Year'}, [localtime]); #printf qq(%s.%s.%s\n), $ref->{Day}, ++$ref->{Month}, $ref->{Year} + 1900; # #my $ff = Names->new({7 => 'Size'}, [stat('/tmp/numbers.bin')]); #print "$ff->{Size}\n"; Zum Anderen hast Du die User. Die haben auch Namen. Ergo brauchst Du eine Datenstruktur entweder nach Benutzern oder nach Verzeichnisnamen. Ich denke, hier sollten wir ansetzen: Was muss Dein Code können und welche Datenstruktur passt am Besten. |