Re: [MacPerl] persistent local variable

[email protected] (Bart Lateur) Sat, 12 Mar 2005 10:27:49 +0100
Newsgroups perl.macperl
Organization MediaMind
Message-ID <[email protected]>
On Sat, 12 Mar 2005 02:06:20 +0100 (MET), Louis Pouzin wrote:

>I would like to make a library subroutine that maintains the value of some local variables between successive calls. Is there such variable type in Perl ?
>
>As a substitute I've been using "use vars ...". It works, but those variables may be clobbered from any part of a program. Is there a better way ?

Use a lexical, in a block around your subs you want to allow access.
Like this:

	{
	    my $count;

	    sub get {
	        return ++$count;
	    }

	    sub clear {
	        undef $count;
	    }
	}


	$\ = "\n";
	for (1..5) {
	   print get;
	}
	clear();
	for (1..3) {
	   print get;
	}

Result:

	1
	2
	3
	4
	5
	1
	2
	3

-- 
	Bart.