Regex als Parameter
Chris
- perl
Hallo,
wie kann man einen regulären Ausdruck als Parameter an eine Subroutine übergeben?
Ich möchte etwa folgendes machen:
sub machwas {
my $regex = shift;
...
$text =~ $regex;
}
machwas(/abcd/);
machwas(/def/i);
Also so ähnlich wie das bei grep, split usw. funktioniert. Nur den Teil übergeben, der zwischen den Slashes steht, reicht mir nicht, weil ich dann die Modifier nicht verändern kann.
Grüße
Chris
Hi,
wie kann man einen regulären Ausdruck als Parameter an eine Subroutine übergeben?
Das einzige was mir dazu einfällt wäre den regulären Ausdruck in einem String zu speichern und dann in der Funktion mit eval() aufzurufen. Is aber wohl nicht sonderlich elegant.
mfG,
steckl
Moin!
sub machwas {
my $regex = shift;
...
$text =~ $regex;
}
machwas(qr/abcd/);
machwas(qr/def/i);
-- Skeeve
Moin!
Sorry! Da fehlte noch was!
Moin!
sub machwas {
my $regex = shift;
...
$text =~ /$regex/;
}
machwas(qr/abcd/);
machwas(qr/(?i)def/);-- Skeeve
-- Skeeve