Thread Perl und @* (35 answers)
Opened by barney at 2023-11-09 09:47

Linuxer
 2023-11-11 20:04
#195486 #195486
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Klar ist das kein sprechender Variablenname, hat auch niemand behauptet.
Klar steht @* nicht explizit in der Perldoc:perlvar, auch das hat niemand behauptet.

In der Perldoc:perlvar steht Text zum Lesen drin, der ein Sonderverhalten zu Variablen mit Interpunktionszeichen beschreibt.

Und @* ist durch dieses Sonderverhalten eine vollkommen gültige Variable, deren "überraschende Verwendung" keine Meldungen triggert.

Im neuen Postfix-Dereferenzieren (seit 5.20) ->@* ist das @* keine Variable, sondern quasi Teil der Operator-Syntax.

Bei einem Tippfehler wie -@* oder >@* (in msg #195466 bereits ausgeführt) wird das aber als Variable ausgewertet; auch wenn sie zuvor nicht definiert oder gefüllt worden ist.

@* ist quasi einfach gültig.
Auch wenn sie nicht in perlvar gelistet wird und auch wenn man sie vorher gar nicht deklariert oder befüllt oder anderweitig bewusst verwendet hat!

Es geht mir/uns hier gar nicht um eine bewusste Verwendung von @*.

Es geht um einen möglichen Tippfehler beim Postfix-Dereferenzieren, wodurch der Teil @* eben als gültige Variable ausgewertet wird und nicht mehr Bestandteil des Operators ist!
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Perl und @*