DIO2000: Regexps mit Variablen ($Variable =~ $Regexp)

Beitrag lesen

Moin moin,
ich habe mich im Forum und im gesamten I-net vergeblich umgesehen, jetzt versuche ich es mal auf diese Weise...

Ich habe folgendes Problem:
irgendwo glaube ich mal gelesen zu haben, das ich sowas in Perl machen kann:
$Regexp = "s/(abc)(xyz)/$2/g";
$String =~ $Regexp;

Wenn dies nicht der Fall ist, dann sind natürlich alle weiteren Erklärungen überflüssig, falls aber doch, dann kommen wir gleich zum nächsten Punkt.
Regexp Userabfrage und Anwendung
        print "Suchausdruck eingeben\t";
        $Regexp = <STDIN>;
        $Regexp =~ s/\n$//g;
        $Regexp =~ s/\n$//g;
        $Regexp =~ s/\n/\n/g;
        $Regexp =~ s/\t/\t/g;
        $Regexp =~ s/\r/\r/g;
        $Regexp =~ s/\f/\f/g;
        #$Regexp =~ s/$/$/g;
        $File =~ s/[\r\n]//g;
        $Regexp = "$Regexp";
        $File =~ $Regexp;

Wenn ich also vom Benutzer einen Ausdruck abfrage, dann kommt PERL mit "s/(abc)(xyz)/$1/g" nicht klar. Denn $1 wird immer als String interpretiert, ich habe trotz aller möglicher suchen-ersetzen-Funktionen nicht geschafft das $1 als Variable erkannt wird. Auch der Anhang /e ist nutzlos. Ich habe auch schon die Version

$File =~ s/$Regexp_search/$Regexp_replace/g;

probiert. Ist aber genau der gleiche Scheiß. Falls jemand das Problem kennt, bin ich für Informationen sehr dankbar.

MFG DIO2000