[Israel.pm] use constant and our

Shmuel Fomberg semuelf at 012.net.il
Wed Mar 4 14:07:10 PST 2009

Hi All.

Today I've seen a weird behavior in a program. I had something like:

our @list = qw{one two three};

use constant VAR => {
    key => "value",
    map( { ( $_ => 16 ) } @list ),
    key2 => "value2",

To my surprise, VAR contained only key and key2.
I theorized that it is because "use constant" is set in compile time, 
and @list is empty in that time. @list is populated in run-time, but 
that is too late for VAR.

Am I right or is there other reason for this?

Tested on Perl 5.6.


More information about the Perl mailing list