45 lines
944 B
Perl
45 lines
944 B
Perl
package Helper;
|
|
use strict;
|
|
|
|
use Exporter();
|
|
use vars qw($VERSION @ISA @EXPORT);
|
|
$VERSION = 0.01;
|
|
@ISA=qw(Exporter);
|
|
@EXPORT=qw(&get_option);
|
|
|
|
sub get_option ($$) {
|
|
my $file = 'Cache';
|
|
my $response;
|
|
my $var = shift;
|
|
|
|
require "$file.pm";
|
|
if(defined($Cache::{$var})){
|
|
$response=$Cache::{$var};
|
|
return $$response;
|
|
}
|
|
|
|
my $request = shift;
|
|
my $filename;
|
|
my $path;
|
|
foreach $path (@INC) {
|
|
$filename="$path/$file.pm";
|
|
last if (-e $filename);
|
|
}
|
|
print STDERR "Enter $request\n";
|
|
$response=<STDIN>;
|
|
chop($response);
|
|
open(CACHE,"<$filename") or die "Cannot open cache for reading";
|
|
undef $/;
|
|
my $cache = <CACHE>;
|
|
$/="\n";
|
|
close CACHE;
|
|
$cache =~ s/^(\@EXPORT\s*=\s*qw\(\s*[^\)]*)\)\s*;/$1 $var\)\;/msg;
|
|
$cache =~ s/^1;[\n\s]*\Z/\$$var=\"$response\"\;\n1\;\n/msg;
|
|
open(CACHE,">$filename") or die "Cannot open cache for writing";
|
|
print CACHE $cache;
|
|
close CACHE;
|
|
return $response;
|
|
}
|
|
|
|
1;
|