Pine Yan wrote: > Hi, Hello,
> what happens to the memory space with the following code: > > my @full_list = (); > > if (...) { > my @tmp_list; > @tmp_list = split(...); No need for two statements there: my @tmp_list = split(...); > @full_list = (@full_list, [EMAIL PROTECTED]); > } > > > Here @tmp_list is a local variable and its definition terminates at the > end of this code segment. Does this mean the > memory space it occupies will be freed, too? If yes, what will happen to > the reference of that variable stored in @full_list? Perl keeps a reference count of variables and since a reference to @tmp_list is still in existence after the block ends the memory occupied by that variable will still exist. You have a bigger problem with the statement: @full_list = (@full_list, [EMAIL PROTECTED]); because you have two copies of @full_list in memory. You should use push() for that: push @full_list, [EMAIL PROTECTED]; John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>