Thread Perl und @*
(35 answers)
Opened by barney at 2023-11-09 09:47
Das wirklich Fatale ist meiner Meinung nach die Sonderbehandlung, die diese Interpunktions-Variablen erfahren.
@* muss nicht vor Nutzung deklariert werden; die ist einfach nutzbar (siehe die Hinweise in perlvar). Auch wenn sie keine vordefinierte Sonderbedeutung hat. Selbst wenn dieses Array nicht befüllt worden ist, wird -@* zu einem validen -0. Da kommt auch mit use strict; keine Meldung. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #! /usr/bin/env perl use strict; use warnings; use 5.024; my $array_ref = [ qw( a b c ) ]; say "Reftype: ", ref($array_ref); say "Stringified: ", "$array_ref"; say "Plain print: ", $array_ref; printf "0x%02x is %i\n", $array_ref, $array_ref; say "- 0 : ", $array_ref-0; # here, @* is an array @main::* ; see perldoc perlvar say "- \@* : ", $array_ref-@*; # here, @* is part of postfix deref; see perldoc perlref say "->\@* : ", $array_ref->@*; __END__ Das ist ja echt doof... Da bin ich ja froh, dass ich bei der klassischen Art hängen geblieben bin. Ein ehrliches Danke@barney für's auf den Schirm bringen! Last edited: 2023-11-09 16:03:09 +0100 (CET) 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! |