Hallo,
ich hatte schon mehrfach das Beduerfnis, regulaere Ausdruecke als Kommandozeilen-parameter/argument zu uebergeben. Beispiel:
%\>conv-text2excel.pl --inputdir ..\texttabellen --outputdir ..\exceltabellen --recordsep "\n" --delimiter "\t"
Ein aehnliches Problem hatte ich auch, wenn ich in User-Interaktion suchen/ersetzen-Funktionen abfragen wollte:
print "\n Write the search- and replace-patterns! ";
print "\n \$search = ";
chomp($\_ = ); # z. B. = \b(\w+)\.txt
$search = $\_;
print "\n \$replace = ";
chomp($\_ = ); # z. B. = $1
$replace = $\_;
foreach my $o (@original\_arr) {
my ($c) = $o =~ s/$search/$replace/i;
#sollte wie =~ s/\b(\w+)\.txt/$1/i; wirken, geht aber nicht!
push @cleaned\_arr, \$c;
}
Ich hatte viel mit qr (quote regular) und quotemeta rumexperimentiert, bin
aber noch nicht weiter gekommen.
Ich wollte schon zu so einer uneleganten Loesung schreiten, dass ich die
Strings unabgeaendert in ein neues Script ueberfuehre und ausfuehren lasse:
open (F, "\>$temp\_script");
...
print F "\n", ' my ($c) = $o =~ ', "s/$search/$replace/i; ";
...
close F;
system("$temp\_script");
unlink("$temp\_script");
Aber das ist es ja vielleicht doch nicht. Kann mir jemand helfen??
Danke. Dirk.