Verstaendnisfreage: Datensaetze bedingt in Array

11/05/2011 - 18:50 von Thomas Pothmann | Report spam
Tach!

Ich habe hier eine CSV-Datei, in der in einigen Datensàtzen ein Feld
nach dem Muster "Max u. Moritz Mustermann" vorkommt. Was ich möchte ist,
daß in diesen Datensàtzen der Nachname abgeschnitten wird, und der
Rest "Max u. Moritz" in ein anderes Feld kopiert wird. Soweit, so gut.

$input = /".+\s{1,}u\.\s{1,}.+/;

fischt mir die betreffenden Datensàtze raus.

Wenn ich jetzt aber mit

if ($input) {
@daten = &quotewords(";",1, $TheLine);
pop @daten;
$daten[1] = $daten[8]; #Hier steht Max u. Moritz Mustermann
$daten[1] =~ s/^"(\w{1,}\s{1,}u\.\s{1,}\S{1,}).+"$/"$1"/g;
#Hier bleibt Max u. Moritz über

nur die gematchten Datensàtze entsprechend modifizieren möchte, schreibt
mir das "join" am Ende eine leere Datei.

Ein testweises

next unless $input;

hingegen funktioniert, so daß $input anscheinend korrekt definiert ist.
Nur werden hier nur die gematchten Datensàtze verarbeitet - ich brauche
aber alle.

Was làuft hier falsch und wie geht's richtig?

TIA

PGP Key on demand
 

Lesen sie die antworten

#1 Thomas Pothmann
11/05/2011 - 20:25 | Warnen spam
Thomas Pothmann wrote:

Wenn ich jetzt aber mit

if ($input) {
@daten = &quotewords(";",1, $TheLine);
pop @daten;
$daten[1] = $daten[8]; #Hier steht Max u. Moritz Mustermann
$daten[1] =~ s/^"(\w{1,}\s{1,}u\.\s{1,}\S{1,}).+"$/"$1"/g;
#Hier bleibt Max u. Moritz über

nur die gematchten Datensàtze entsprechend modifizieren möchte,
schreibt mir das "join" am Ende eine leere Datei.



Gelöst: Typo im Script!

THX

PGP Key on demand

Ähnliche fragen