Es verhindert Konflikte mit in Perl geschriebenen Programmen.
Sagen wir zum Beispiel, ich habe ein Programm für Perl 5.6 geschrieben, das eine Subroutine namens %code% definiert hat.
%Vor%Das funktioniert einwandfrei (Ausgabe 1 ) und funktioniert immer noch in Perls, die das %code% -Feature enthalten.
Nun aktivieren wir das native %code% und sehen was passiert:
%Vor%Jetzt fällt es um mit * Verwendung des nicht initialisierten Wertes $ _ in zB at - Zeile 5. *
Sie müssen %code% oder %code% eingeben, damit die neuen Funktionen sicher geladen werden können, d. h. wenn der Autor weiß, dass er sie verwenden möchte.
Perl versucht, die Rückwärtskompatibilität beizubehalten. Es ist durchaus möglich, dass existierende Skripte Unterroutinen mit dem Namen %code% haben. Es gibt eine beträchtliche Diskussion darüber, ob eine zukünftige Version von Perl diese Bemühungen stoppen und seine Interna rationalisieren sollte. Siehe zum Beispiel Benennungs- und Nummerierungsperl .
Ich habe 5.14.2 in meinem Computer installiert, aber wenn ich versuche, eine Druckanweisung mit %code% Schlüsselwort auszuführen, gibt es einen Fehler.
Ich gehe mit dem use-Schlüsselwort, um das Programm ohne Fehler laufen zu lassen.
%Vor%5.14.2 ist spätestens im Vergleich zu 5.010, also sollten alle diese Funktionen standardmäßig aktiviert sein, oder? Was ist dann der Punkt bei der Angabe der Version mit %code% keyword?