package Template::Coverable::Provider; use strict; use base qw/Template::Provider/; sub _compiled_filename { my $self = shift; my $s = $self->SUPER::_compiled_filename(@_); $s =~ s/\.(?!pm$)/___/g; return $s; } sub _load_compiled { my ($self, $file) = @_; my $compiled; # load compiled template via require(); we zap any # %INC entry to ensure it is reloaded (we don't # want 1 returned by require() to say it's in memory) my $pkg = Template::Coverable::file2pkg($file); my $pkgf = "$pkg.pm"; $pkgf =~ s#::#/#g; delete $INC{ $pkgf }; eval "use $pkg;" . q{ $compiled = $pkg->getDocument(); }; return $@ ? $self->error("compiled template $compiled: $@") : $compiled; } 1;