Then I'm afraid I have bad news - you cannot do what you're trying to do, the way you're trying to do it. A module is 'static' code - it's imported by your subs when you start them, but it doesn't have any persistent state.
You may wish to consider reading from a file. At the most basic this goes like (and please note - this is very basic, there's no error or integrity checking):
{
my $state_file = "current_masterid.txt";
my $MASTERLOGFILE;
my $MASTERID;
sub save_masterid
{
if ( defined $MASTERID )
{
open ( my $output_fh, ">", $state_file );
print $output_fh $masterid;
close ( $output_fh );
}
}
sub load_masterid
{
if ( -f $state_file )
{
open ( my $input_fh, "<", $state_file );
$MASTERID = <$input_fh>;
close ( $input_fh );
}
else
{
$MASTERID = "00000000";
$MASTERLOGFILE = "LOGFILE not defined";
&save_masterid()
}
}
sub get_masterid
{
&load_masterid() unless defined $MASTERID;
return $MASTERID;
}
sub set_masterid
{
( $MASTERID ) = @_;
&save_masterid();
}
}
|