I don't really advocate what you are doing, better I think to store your vars in a seperate file and read them in at runtime, but if you insist, you could use Inline::Files, which make what your doing fairly trivial.
#! perl -sw
use strict;
use Inline::Files -backup;
BEGIN{
$::name1 = <MY_VARS>; chomp($::name1);
$::name2 = <MY_VARS>; chomp($::name2);
}
print "This time I have $::name1, and $::name2\n";
$::name1 = 'frederica';
$::name2 = 'willamina';
END{
open MY_VARS, '>' or die $!;
print MY_VARS "$::name1\n$::name2\n";
close MY_VARS;
}
__MY_VARS__
fred
bill
__DATA__
C:\test>202246
This time I have fred, and bill
C:\test>202246
This time I have frederica, and willamina
C:\test>
Nice things is that the module is tested, proven and has a backup facility (though only one level of backup).
Also, doing this way you don't have to worry about making changes to your code and then having to modify your regexes, or risk forgetting and totally screwing your code.
Using the BEGIN and END blocks makes sure it get done at the right time.
Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|