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

Linuxer
 2023-11-09 14:31
#195456 #195456
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
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 Perldoc: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!

View full thread Perl und @*