use Mosche;
Ich habe einen Array. Nun will ich alle Elemente löschen, die weniger als 3 Zeichen haben, falls dies buchstaben sind. Wenn es aber zahlen sind, sollen die elemente belassen werden.
Wennn ich alle Elemente löschen will, die kleiner als 3 Zeichen haben, so kann ich das laut einem Tipp so machen:
my @new_ary = grep { length($_) > 3 } @old_ary;
Was ist nun aber, wenn ich die Zahlen stehen lassen will? Wo/wie kann ich diese Bedingung zusätzlich einfügen?
Schon mal bei 'perldoc -f grep' nachgeschaut? Nein? Dann tu das jetzt.
Damit du mal selbst darauf kommen kannst, solltest du in der Langform anfangen:
my @old_array ( 1 .. 4, "sdf", "rdsfg");
my @new_array;
foreach (@old_array) {
if ((/\w/ && length($_) > 3) or /^\d+$/) {
push @new_array, $_;
}
}
Zu deiner Frage:
Die Bedingung, ob ein Element aus dem alten Array in das neue übernommen werden soll, steht in den geschweiften Klammern nach grep.
use Tschoe qw(Matti);
neues Selftreffen?
http://selfcommunity.teamone.de/foren/community/?t=2241&m=2687
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.