Helper.pm 944 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package Helper;
  2. use strict;
  3. use Exporter();
  4. use vars qw($VERSION @ISA @EXPORT);
  5. $VERSION = 0.01;
  6. @ISA=qw(Exporter);
  7. @EXPORT=qw(&get_option);
  8. sub get_option ($$) {
  9. my $file = 'Cache';
  10. my $response;
  11. my $var = shift;
  12. require "$file.pm";
  13. if(defined($Cache::{$var})){
  14. $response=$Cache::{$var};
  15. return $$response;
  16. }
  17. my $request = shift;
  18. my $filename;
  19. my $path;
  20. foreach $path (@INC) {
  21. $filename="$path/$file.pm";
  22. last if (-e $filename);
  23. }
  24. print STDERR "Enter $request\n";
  25. $response=<STDIN>;
  26. chop($response);
  27. open(CACHE,"<$filename") or die "Cannot open cache for reading";
  28. undef $/;
  29. my $cache = <CACHE>;
  30. $/="\n";
  31. close CACHE;
  32. $cache =~ s/^(\@EXPORT\s*=\s*qw\(\s*[^\)]*)\)\s*;/$1 $var\)\;/msg;
  33. $cache =~ s/^1;[\n\s]*\Z/\$$var=\"$response\"\;\n1\;\n/msg;
  34. open(CACHE,">$filename") or die "Cannot open cache for writing";
  35. print CACHE $cache;
  36. close CACHE;
  37. return $response;
  38. }
  39. 1;