in reply to Re^2: static storage in a local subroutine?
in thread static storage in a local subroutine?
Care to elaborate?#!/usr/bin/perl use strict; use warnings; INITIALIZE: { my $cnt = 1; sub get_count { return $cnt++; } } print get_count(), "\n" for 1..10; goto INITIALIZE if get_count() < 15; __END__ 1..10, 12..21
Update: Explanation from tye in the CB
The re-initialization of $cnt doesn't impact the get_count() sub because it is only defined once at compile time. It however does get re-initialized which may impact other things within the same scope but not in the sub itself. To avoid wasting resources and make the intent clear, using the BEGIN block is a good idea (which I never doubted in the first place).
Cheers - L~R
|
|---|