PGXN-Site
view release on metacpan or search on metacpan
lib/PGXN/Site/Locale.pm view on Meta::CPAN
my ($self, $path) = (shift, shift);
my $class = ref $self;
my $file = $PATHS_FOR{$class}{$path} ||= _find_file($class, $path);
open my $fh, '<:utf8', $file or die "Cannot open $file: $!\n";
my $value = do { local $/; $self->_compile(<$fh>); };
return ref $value eq 'CODE' ? $value->($self, @_) : ${ $value };
}
sub _find_file {
my $class = shift;
my @path = split m{/}, shift;
(my $dir = __FILE__) =~ s{[.]pm$}{};
no strict 'refs';
foreach my $super ($class, @{$class . '::ISA'}, __PACKAGE__ . '::en') {
my $file = File::Spec->catfile($dir, $super->language_tag, @path);
return $file if -e $file;
}
croak "No file found for path " . join('/', @path);
}
1;
( run in 1.025 second using v1.01-cache-2.11-cpan-71847e10f99 )