Thread Mehrere Einträge aus String auslesen?!? (9 answers)
Opened by ageissler at 2009-07-21 15:31

Linuxer
 2009-07-21 22:20
#123449 #123449
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hi,

das zeilernweise Auslesen einer Datei scheinst Du ja zu kennen.
Wenn Du Text::CSV installierst und verwendest, geht das fast analog...

Dein Code korrigiert und aufgeräumt:
Code (perl): (dl )
1
2
3
4
5
while ( my $in = <D_VERTEILER> ) {
  chomp $in;
  my @cn = $in =~ m/cn=(\w+)/g;
  print Dumper \@cn;
}


Aber ich fand moritz' Vorschlag mit Text::CSV gar nicht schlecht. Ich weiss nur noch nicht, wie ich Deine Antwort werten soll ;)

Ich bin mal so frei und poste hier nun ein Schema einer möglichen Lösung:
  • lade Pragmas: strict, warnings
  • lade Module: Text::CSV, Data::Dumper
  • übernehme Dateiname aus @ARGV; see: perldoc -f shift
  • stirb, wenn Dateiname nicht definiert; see: perldoc -f defined
  • oeffne Datei mit lexikalischen Handle: see: perldoc -f open
    open my $handle, '<', $filename or die "open $filename: $!\n";
  • erzeuge neues Text::CSV Objekt; see: perldoc Text::CSV
  • solange (while) mit getline des Text::CSV-Objekts Zeilen aus dem Dateihandle ermittelt werden können; see: perldoc Text::CSV (getline)
  • dereferenziere die Referenz, die von getline() geliefert wurde, um die Felder der Zeile zu erhalten
  • Wende neniros Regex auf jedes Feld an und schiebe die Ergebnisse nach @cn
  • gebe @cn mit Dumper aus
  • Ende der while-Schleife
  • Schliesse Dateihandle
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Mehrere Einträge aus String auslesen?!?