in reply to Re: Using static variable in perl
in thread Using static variable in perl

Note that one can only create scalar static variables. So the OP should use an arrayref instead of an array if the OP decides to use a static variable.

Replies are listed 'Best First'.
Re^3: Using static variable in perl
by Aaronrp (Scribe) on Mar 08, 2011 at 19:25 UTC
    No, state works just fine with arrays and hashes.
    #!/ActivePerl/bin/perl use strict; use warnings; use feature (qw/state say/); store_and_print_hash('a'); store_and_print_hash('b'); store_and_print_hash('c'); store_and_print_array('x'); store_and_print_array('y'); store_and_print_array('z'); sub store_and_print_hash { state %hash; my $key = shift; $hash{$key} = 1; say "Hash keys: (" , join(', ' , sort keys %hash), ")"; } sub store_and_print_array { state @array; my $value = shift; push @array, $value; say "Array values: (" , join(', ' , @array), ")"; }
    results in
    Hash keys: (a) Hash keys: (a, b) Hash keys: (a, b, c) Array values: (x) Array values: (x, y) Array values: (x, y, z)
    -- Am I the only one who still cares about RT #67694?