diff options
Diffstat (limited to 'lib/File/Cache/Parsed.pm')
-rw-r--r-- | lib/File/Cache/Parsed.pm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/File/Cache/Parsed.pm b/lib/File/Cache/Parsed.pm index 1546ef1..f6930d3 100644 --- a/lib/File/Cache/Parsed.pm +++ b/lib/File/Cache/Parsed.pm @@ -3,16 +3,18 @@ use strict; use warnings; use List::Util qw(first); use List::MoreUtils qw(firstidx); +use Cwd 'abs_path'; use Path::Class; use Carp; sub new { - my ($class)=@_; + my ($class,%opts)=@_; return bless { parsers=>[], writers=>[], cache=>{}, + follow=>$opts{follow}, }=>$class; } @@ -58,6 +60,10 @@ sub del_parser { sub get { my ($self,$filename)=@_; + if ($self->{follow}) { + $filename=abs_path($filename); + } + return $self->{cache}{$filename} if exists $self->{cache}{$filename}; my $contents=file($filename)->slurp; |