package NumberCount; use strict; use warnings; use Carp; use Storable; use base 'Exporter'; our @EXPORT=qw(count_up count_last); # VARs intern my %vars = (); sub count_up { my $ref=&__get_count_ref; $$ref++; return $$ref } sub count_last { my $ref=&__get_count_ref; return $$ref; } ######################################################################## sub END { for my $file (keys(%vars)) { store($vars{$file}, $file); } } sub __get_count_ref { my $file=shift //croak "No file"; my $key=shift // croak "No key!"; $file=File::Spec->rel2abs($file); unless(exists($vars{$file})) { if(-f $file) { $vars{$file}=retrieve($file) // {}; } else { $vars{$file}={}; } } return \$vars{$file}->{$key}; } 1;