___ tag123perl ___ Perl ist eine prozedurale, allgemeine Programmiersprache für allgemeine Zwecke, die für ihre native Unterstützung von regulären Ausdrücken und String-Parsing-Funktionen bekannt ist. Bitte verwenden Sie diesen Tag für Fragen zu Perl im Allgemeinen. Für Dinge, die mit der neuen (aber verwandten) Sprache "Perl 6" zu tun haben, verwenden Sie bitte das perl6-Tag. Verwenden Sie für reguläre Ausdrücke nach Perl-Art in anderen Sprachen das Regex-Tag oder, falls sie auf der PCRE-Bibliothek basieren, das PCRE-Tag. ___ answer15053905 ___

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.

    
___ answer15053928 ___

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 .

    
___ qstntxt ___

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?

    
___

8

Ich habe 5.14.2 in meinem Computer installiert, aber wenn ich versuche, eine Druckanweisung mit say 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 use keyword?

    
chidori 24.02.2013, 16:28
quelle

2 Antworten

10

Perl versucht, die Rückwärtskompatibilität beizubehalten. Es ist durchaus möglich, dass existierende Skripte Unterroutinen mit dem Namen say 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 .

    
JRFerguson 24.02.2013 16:39
quelle
5

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 say definiert hat.

%Vor%

Das funktioniert einwandfrei (Ausgabe 1 ) und funktioniert immer noch in Perls, die das say -Feature enthalten.

Nun aktivieren wir das native say und sehen was passiert:

%Vor%

Jetzt fällt es um mit * Verwendung des nicht initialisierten Wertes $ _ in zB at - Zeile 5. *

Sie müssen use feature oder use v5.xx eingeben, damit die neuen Funktionen sicher geladen werden können, d. h. wenn der Autor weiß, dass er sie verwenden möchte.

    
Quentin 24.02.2013 16:36
quelle

Tags und Links