Was macht Perl in diesem Fall mit diesem Argument?

8

Ich habe gerade Code in unserer Codebasis gesehen (und es ist OLD-Code, wie in Perl 3 oder Perl 4 Tage), der so aussieht (ich vereinfache sehr):

%Vor%

Beachten Sie, dass das array in push() kein @ hat. Ich würde annehmen, dass der Code hinter Push weiß, dass das erste Argument Array sein soll, so dass das Array aus dem array typeglob extrahiert wird. Ist das mehr oder weniger das? Wenn Perl das ohne Probleme tun kann, warum sollten Sie @ überhaupt einfügen?

    
Morinar 30.03.2010, 19:11
quelle

3 Antworten

9

Dies ist ein altes 'Merkmal' des Parsers. Das @ ist bei einem Push nicht obligatorisch, wenn die Variable eine Paketvariable ist. Dies wird von vielen als ein Fehler angesehen, der behoben werden sollte. Du solltest das wirklich nicht tun.

    
Leon Timmermans 30.03.2010, 19:17
quelle
4

Dies ist ein zweifelhaftes "Merkmal" von Perl, veraltetes Verhalten; Es sollte ein Fehler sein, aber es funktioniert.

Wenn Sie die Warnungen des Compilers aktivieren ( perl -W , sehr empfehlenswert), warnt es:

%Vor%     
leonbloy 30.03.2010 19:22
quelle
2

Nicholas Clark erklärt :

Das ist die Perl 1-Syntax.
    
daxim 31.03.2010 11:14
quelle

Tags und Links