summaryrefslogtreecommitdiffstats
path: root/Helper.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Helper.pm')
-rw-r--r--Helper.pm44
1 files changed, 44 insertions, 0 deletions
diff --git a/Helper.pm b/Helper.pm
new file mode 100644
index 0000000..198a648
--- /dev/null
+++ b/Helper.pm
@@ -0,0 +1,44 @@
1package Helper;
2use strict;
3
4use Exporter();
5use vars qw($VERSION @ISA @EXPORT);
6$VERSION = 0.01;
7@ISA=qw(Exporter);
8@EXPORT=qw(&get_option);
9
10sub get_option ($$) {
11 my $file = 'Cache';
12 my $response;
13 my $var = shift;
14
15 require "$file.pm";
16 if(defined($Cache::{$var})){
17 $response=$Cache::{$var};
18 return $$response;
19 }
20
21 my $request = shift;
22 my $filename;
23 my $path;
24 foreach $path (@INC) {
25 $filename="$path/$file.pm";
26 last if (-e $filename);
27 }
28 print STDERR "Enter $request\n";
29 $response=<STDIN>;
30 chop($response);
31 open(CACHE,"<$filename") or die "Cannot open cache for reading";
32 undef $/;
33 my $cache = <CACHE>;
34 $/="\n";
35 close CACHE;
36 $cache =~ s/^(\@EXPORT\s*=\s*qw\(\s*[^\)]*)\)\s*;/$1 $var\)\;/msg;
37 $cache =~ s/^1;[\n\s]*\Z/\$$var=\"$response\"\;\n1\;\n/msg;
38 open(CACHE,">$filename") or die "Cannot open cache for writing";
39 print CACHE $cache;
40 close CACHE;
41 return $response;
42}
43
441;