Leser: 21
1 2 3 4 5 6 7 8
my %hash = ( test => 1, hallo => 2, welt => 3); my $counter = 0; for my $value ( values %hash ) { my $key = (keys %hash)[$counter]; print $key; $counter++; }
2010-04-14T10:09:44 reneeWie hängen denn die Warnung und die Schleife zusammen?
1
2
3
$ perl -wle'my $string = "foo,bar";
split /,/, $string;'
Use of implicit split to @_ is deprecated at -e line 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl -w use strict; use warnings; my %user = ( 1 => 'hallo|hallo|hallo|hallo|hallo', 2 => 'hallo|hallo|hallo', ); my %foo = ( 1 => 'hallo', ); foreach my $user ( grep { (split /\|/,$user{$_})[4] # das matcht auf garnichts #defined (split /\|/,$user{$_})[4] schmeisst Syntax und Implicit-Error && defined $foo{(split /\|/,$user{$_})[4]} } keys %user ) { print "Treffer: $user\n"; }
2010-04-14T10:25:20 biancaÜberschlagt Euch doch nicht gleich.
QuoteEdit: Daher hatte ich mit values versucht aber das ist bestimmt Bullshit.
2010-04-14T10:26:48 pqoh entschuldigung, ich hatte ja vergessen, dass du es nicht magst, wenn du zuviele antworten bekommst.
1 2 3 4 5
grep { my @split = split /\|/,$user{$_}; $split[4] && defined $foo{ $split[4] }; } keys %user
defined (split /\|/,$user{$_})[4] schmeisst Syntax und Implicit-Error
2010-04-14T10:29:47 reneeDu solltest das Ergebnis in einer Variablen speichern. Dann muss auch nicht mehrmals split ausgeführt werden...
2010-04-14T10:34:13 pqman könnte auch gleich das feld nummer 4 abspeichern statt ein array.
2010-04-14T10:45:10 bianca2010-04-14T10:34:13 pqman könnte auch gleich das feld nummer 4 abspeichern statt ein array.
Lohnt sich in diesem Fall nicht.
2010-04-14T10:50:02 pqedit: ah klar, wenn man es wie von renee auf dem silbertablett vorgesetzt bekommt, lohnt es sich auf einmal doch. aber ansonsten lieber erstmal nein sagen, gell
2010-04-14T11:00:27 bianca2010-04-14T10:50:02 pqedit: ah klar, wenn man es wie von renee auf dem silbertablett vorgesetzt bekommt, lohnt es sich auf einmal doch. aber ansonsten lieber erstmal nein sagen, gell
Du schriebst im Beitrag 135973 "man könnte auch gleich das feld nummer 4 abspeichern statt ein array".
Und das habe ich so verstanden, dass Deine Lösung nocheinmal eine andere wäre als die von renee vorgeschlagene.
Komme ich Dir gerade wieder recht für Deine Hasstiraden?
Ich finde diese Verhaltensweise mittlerweile ziemlich peinlich in der Community. Wer das hier nicht kennt, denkt sich auch seinen Teil.
2010-04-14T11:03:39 pqwie gesagt, ich will es nur verstehen
2010-04-14T11:12:47 pqjo, ich bekomm ja eh keine antwort auf meine fragen.
Quotemöchte ich nicht stehen lassen, weil ich das als Angriff empfinde."edit: ah klar, wenn man es wie von renee auf dem silbertablett vorgesetzt bekommt, lohnt es sich auf einmal doch. aber ansonsten lieber erstmal nein sagen, gell"
2010-04-14T10:29:47 reneeCode (perl): (dl )1 2 3 4 5grep { my @split = split /\|/,$user{$_}; $split[4] && defined $foo{ $split[4] }; } keys %user
2010-04-14T10:51:04 biancaEdit: mir war nicht bewußt, dass man auch solche ganzen Ausdrücke ins grep packen kann. Dachte, da dürften nur Bedingungen rein *peinlich*
2010-04-14T10:53:05 pqund wie lange genau machst du perl nochmal? rein interessehalber.
2010-04-14T11:02:37 biancaSo häufig mit grep arbeite ich erst seit kurzem. Habe das früher nicht genutzt und trotzdem alles hinbekommen. Da staunst Du, was?
2010-04-14T11:05:49 pqwas genau soll mich jetzt zum staunen bringen?
2010-04-14T11:08:14 biancaWenn es nicht Erstaunen war, war es eben etwas anderes, was Dich bewogen hat, mich zu fragen, wie lange ich Perl mache.
Und ganz ehrlich: Es ist mir völlig egal, was Dich bewogen hat. Ich habe Dir geantwortet
2010-04-14T11:09:51 pqnun, die antwort, die ich bekommen wollte, habe ich nicht bekommen
2010-04-14T10:51:04 bianca
1 2 3 4 5
grep { my $field = split /\|/,$user{$_}; $field && defined $foo{ $field }; } keys %user
1 2 3 4 5
for my $user (keys %user) { if (<irgendwelche Tests ggf. mit geschachtelten ifs>) { print "Treffer: $user\n"; } }
1 2 3 4 5 6
while(my ($key, $user) = each %user) { my $check = (split /\|/,$user)[4]; next unless $check && defined $foo{$check}; # ggf. auch # next unless $check && exists $foo{$check}; }