summaryrefslogtreecommitdiffstats
path: root/Helper.pm
blob: 198a6480ef98e93e0dc01c558064ad499978801d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;