Hi,
am I correct in the assumption that the following is an error?
# Not in a BEGIN block
my $::(calc_varname()) = 42;
I think so, as my() is a compile-time operation, but in this
example, the variable name is not known until runtime, so I
think this should be forbidden. Correct?
But:
BEGIN {
my $::(calc_varname()) = 42;
}
I think this one is ok, as the compiler can invoke
&calc_varname at compile-time, and therefore know the variable
name at compile-time. Correct?
FWIW, I wouldn't mind BEGIN { my $::(...) } being disallowed, too
(consistency).
--Ingo
--
Linux, the choice of a GNU | self-reference, n. - See self-reference
generation on a dual AMD |
Athlon! |