[Israel.pm] use constant and our

Gaal Yahas gaal at forum2.org
Wed Mar 4 15:59:34 PST 2009


Minor correction: "our" is lexically scoped, so you need:

our @list;

BEGIN {
  @list = qw(one two three);
}

use constant .......;

On Thu, Mar 5, 2009 at 12:07 AM, Shmuel Fomberg <semuelf at 012.net.il> wrote:
> 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.
>
> Shmuel.
> _______________________________________________
> Perl mailing list
> Perl at perl.org.il
> http://perl.org.il/mailman/listinfo/perl
>



-- 
Gaal Yahas <gaal at forum2.org>
http://gaal.livejournal.com/



More information about the Perl mailing list