in reply to Code Loop?
I'm not sure what you intended with your code, but let's look at what Perl sees:
>perl -w -MO=Deparse tmp.pl BEGIN { $^W = 1; } sub BEGIN { require 5.01; } use strict 'refs'; BEGIN { $^H{'feature_say'} = q(1); $^H{'feature_state'} = q(1); $^H{'feature_switch'} = q(1); } my(@x) = ('x', 1); my $y = \@x; say $#@ x [1];
This is the interesting line:
say $#@ x [1];
So Perl doesn't see anything regarding @x there, but sees the variable $#@ (the last index of the @@ array, repeated [1] times. Any reference in numerical context evalues to a (large) number. This is what causes the repeated output of -1.
|
|---|