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(); } }
In reply to Re^3: Need to share and modify global variables across modules and packages.
by Preceptor
in thread Need to share and modify global variables across modules and packages.
by mathew_p_a
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |