Array auf zwei Slices abfragen
Array auf zwei Slices abfragen
am 17.05.2006 20:57:26 von t_pot
Folgendes Beispiel-Skript:
#!/usr/bin/perl
@array = ("eins",2,3,4,"fünf");
if (($array[0] =~ m/^e.+s$/) and ($array[4] =~ m/^f.+f$/)) {
print STDOUT "Passt, Zahlworte gefunden!\n";
}
Sagt /Passt.../, weil die Bedingung sowohl für Slice 1 als auch Slice 4
erfüllt ist.
Warum funktioniert folgendes Beispiel nicht analog?
if ($kunden[9] =~ m/^"\d{2}\.\d5\."$/) {
$kunden[0] = qq("Frau");
}
elsif ($kunden[11] =~ m/^"\d{2}\.\d5\."$/) {
$kunden [0] = qq("Herr");
}
elsif (($kunden[9] =~ m/^"\d{2}\.\d5\."$/) and
($kunden[11] =~ m/^"\d{2}\.\d5\."$/)) { #auf einer Zeile)
print STDOUT "Achtung, bei $kunden[2] Doppeltreffer!\n";
Zur Erklärung: Aus einer CSV-Datei sollen jene Kandidaten herausgefischt
werden, die im aktuellen Monat Geburtstag haben. In Slice 9 sind die
Mädels verzeichnet, in Slice 11 die Jungs.
Die erste Abfrage sucht nach den Mädels und setzt gleich die passende
Anrede in Slice 0 - analog die zweite Abfrage für die Jungs mit
entsprechender Anrede.
So, bei ein paar wenigen haben aber beide im selben Monat Geburtstag.
Und die will ich mit der dritten Abfrage einfangen, um für diese
händisch in der Output-Datei einen zusätzlichen Datensatz anzulegen.
Das klappt aber nicht, obwohl doch das Konstrukt genauso aufgebaut ist
wie bei obigem Mini-Beispiel - und das tut! Obwohl definitiv
Doppeleinträge da sind, werden diese nicht gematcht.
Übersehe ich da was?
TIA,
--
Thomas Pothmann
PGP-Key on demand
Re: Array auf zwei Slices abfragen
am 17.05.2006 21:04:40 von Ch Lamprecht
Thomas Pothmann schrieb:
> Folgendes Beispiel-Skript:
>
> #!/usr/bin/perl
> @array = ("eins",2,3,4,"fünf");
> if (($array[0] =~ m/^e.+s$/) and ($array[4] =~ m/^f.+f$/)) {
> print STDOUT "Passt, Zahlworte gefunden!\n";
> }
>
> Sagt /Passt.../, weil die Bedingung sowohl für Slice 1 als auch Slice 4
> erfüllt ist.
>
> Warum funktioniert folgendes Beispiel nicht analog?
>
> if ($kunden[9] =~ m/^"\d{2}\.\d5\."$/) {
> $kunden[0] = qq("Frau");
> }
> elsif ($kunden[11] =~ m/^"\d{2}\.\d5\."$/) {
> $kunden [0] = qq("Herr");
> }
> elsif (($kunden[9] =~ m/^"\d{2}\.\d5\."$/) and
> ($kunden[11] =~ m/^"\d{2}\.\d5\."$/)) { #auf einer Zeile)
> print STDOUT "Achtung, bei $kunden[2] Doppeltreffer!\n";
>
> Zur Erklärung: Aus einer CSV-Datei sollen jene Kandidaten herausgefischt
> werden, die im aktuellen Monat Geburtstag haben. In Slice 9 sind die
> Mädels verzeichnet, in Slice 11 die Jungs.
>
> Die erste Abfrage sucht nach den Mädels und setzt gleich die passende
> Anrede in Slice 0 - analog die zweite Abfrage für die Jungs mit
> entsprechender Anrede.
>
> So, bei ein paar wenigen haben aber beide im selben Monat Geburtstag.
> Und die will ich mit der dritten Abfrage einfangen, um für diese
> händisch in der Output-Datei einen zusätzlichen Datensatz anzulegen.
>
> Das klappt aber nicht, obwohl doch das Konstrukt genauso aufgebaut ist
> wie bei obigem Mini-Beispiel - und das tut! Obwohl definitiv
> Doppeleinträge da sind, werden diese nicht gematcht.
Hallo,
so dagegen, funktioniert es auch nicht ;)
Christoph
#!/usr/bin/perl
use warnings;
use strict;
my @array = ("eins",2,3,4,"fünf");
if ($array[0] =~ m/^e.+s$/) {
}elsif($array[4] =~ m/^f.+f$/){
}elsif (($array[0] =~ m/^e.+s$/) and ($array[4] =~ m/^f.+f$/)) {
print STDOUT "Passt, Zahlworte gefunden!\n";
}
--
perl -e "print scalar reverse q/ed.enilno@ergn.l.hc/"
Re: Array auf zwei Slices abfragen
am 21.05.2006 18:57:06 von t_pot
Ch Lamprecht wrote:
>Hallo,
>so dagegen, funktioniert es auch nicht ;)
>#!/usr/bin/perl
>use warnings;
>use strict;
>
>my @array = ("eins",2,3,4,"fünf");
>
> if ($array[0] =~ m/^e.+s$/) {
>
> }elsif($array[4] =~ m/^f.+f$/){
>
> }elsif (($array[0] =~ m/^e.+s$/) and ($array[4] =~ m/^f.+f$/)) {
> print STDOUT "Passt, Zahlworte gefunden!\n";
> }
Oha, danke für den Wink mit dem Zaunpfahl! Ich hab' die Geburtstage
jetzt in ein separates if-Statement gepackt. ;o)
Aber warum das obige Konstrukt nicht funktioniert, ist mir immer noch
nicht klar - kann mal bitte einer sagen, wo ich da genau auf der Leitung
stehe? Kommt es etwa zu der dritten Abfrage gar nicht mehr, weil die
ersten beiden schon gematcht haben?
TIA,
--
Thomas Pothmann
PGP-Key on demand
Re: Array auf zwei Slices abfragen
am 21.05.2006 19:17:34 von t_pot
Thomas Pothmann wrote:
>Aber warum das obige Konstrukt nicht funktioniert, ist mir immer noch
>nicht klar - kann mal bitte einer sagen, wo ich da genau auf der Leitung
>stehe? Kommt es etwa zu der dritten Abfrage gar nicht mehr, weil die
>ersten beiden schon gematcht haben?
Oha! Habe gerade mal einen Blick in die Output-Datei geworfen. Und kann
mir die Frage doch selber beantworten... Bei den /Doppelgängern/ bleibt
die Anrede nämlich auf "Frau", obwohl die Jungs - wie gesagt - in der DB
dahinter stehen...
Nüx für ungut. ;o)
--
Thomas Pothmann
PGP-Key on demand