in reply to Re: Re: How to connect more arrays to a new array
in thread Find unique elements from multiple arrays
My guess is that it is related to Perl not completely throwing away a lexical variable if it goes out of scope, because you often reenter a block and it's faster to keep the structure around. Look at this:
my @a = 1 .. 10; my @b = 5 .. 15; my @c = 10 .. 20; my @d = 15 .. 25; for (1 .. 2) { @B = do {local %h; $h {$a [0]} ++; print "B: ", scalar %h, "\n"; ++@h {@a, @b, @c, @d}; keys %h}; @C = do { my %h; $h {$a [0]} ++; print "C: ", scalar %h, "\n"; ++@h {@a, @b, @c, @d}; keys %h}; } __END__ B: 1/8 C: 1/8 B: 1/8 C: 1/32
The second time it's executing the my %h block, the hash already has 32 buckets.
Abigail
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: How to connect more arrays to a new array
by BrowserUk (Patriarch) on Apr 28, 2003 at 13:49 UTC | |
by Abigail-II (Bishop) on Apr 28, 2003 at 14:09 UTC |