On Wed, Oct 6, 2010 at 23:06, Jakub Narebski [off-list ref] wrote:
On Thu, 7 Oct 2010, Ævar Arnfjörð Bjarmason wrote:
quoted
On Wed, Oct 6, 2010 at 22:01, Jakub Narebski [off-list ref] wrote:
quoted
+ $cache ||= 'GitwebCache::SimpleFileCache';
+ eval "require $cache";
Just:
eval { require $cache };
Instead?
Wouldn't work correctly. We want to use 'require BAREWORD' version,
where BAREWORD is name of module, e.g. GitwebCache::SimpleFileCache,
and which makes Perl to search for GitwebCache/SimpleFileCache.pm
in @INC.
Ah, I've been using perl5i too much :)
Well, we could insert hooks into @INC, but I don't think we want to use
such hack.
There's also:
eval {
my $path = $cache;
$path =~ s[::][/]g;
$path .= ".pm";
require $path;
};
But at that point it's probably easier just to use string eval. Unless there's
a performance issue (very unlikely).