[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Re: [ID 20000130.002] Odd memory leak



On 31 Jan 2000 07:46:24 GMT, gerti@bitart.com wrote:
>The short program below leaks under various versions of perl and
>on various OS. Am I missing something, or is this a bug in perl?
>
>Thanks!
>
>$x="TST00000";
>while(1)
>{
>	my $handle=$x++;
>	open($handle,'/etc/rc'); # or any other file
>	close($handle);
>}

You're filling up the symbol table with empty symbols (closed
filehandles).  Create anonymous symbols with Symbol instead.

    use Symbol;
    while (1) {
        open(my $handle = gensym, '/etc/rc') or die;
	close $handle;
    }

In 5.6, you'll be able to shorten that to:

    while (1) {
        open my $handle, '/etc/rc'  or die;
	close $handle;
    }


Sarathy
gsar@ActiveState.com


References to:
gerti@bitart.com

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]