Wie könnte ich ein Unterprogramm neu definieren und das alte auch behalten?

7

Folgendes möchte ich erreichen:

%Vor%

Ich dachte, wenn ich das Symbol für first speichere, könnte ich später die ursprüngliche Subroutine (unter dem Namen original_first ) aufrufen und auch first aufrufen und die eine neu definieren lassen . Wenn ich jedoch original_first aufruft, bekomme ich immer noch das "Dies wird zuerst neu definiert". Was muss ich tun, damit dies funktioniert?

    
Geo 03.12.2009, 21:44
quelle

3 Antworten

9

Dies sollte so funktionieren, wie Sie es erwarten:

%Vor%     
Lukáš Lalinský 03.12.2009, 21:49
quelle
9

In Ihrem Code interpretiert Perl beide Unterdeklarationen ähnlich wie folgt:

%Vor%

, so dass beide Zuweisungen an &first vor dem Speichern der Kopie und dem Aufruf der Routinen enden. Die Lösung besteht darin, die zweite Deklaration in eine Laufzeitzuweisung umzuwandeln:

%Vor%     
Eric Strom 03.12.2009 22:07
quelle
1

Sehen Sie sich das Hook :: LexWrap -Modul an, das all dies für Sie erledigen kann. Wenn Sie das Modul nicht verwenden möchten, sehen Sie sich einfach die Quelle an, die Ihnen genau zeigt, wie es geht.

    
brian d foy 04.12.2009 00:19
quelle

Tags und Links