diff --git a/.lib/perl5/Autofetch.pm b/.lib/perl5/Autofetch.pm --- a/.lib/perl5/Autofetch.pm +++ b/.lib/perl5/Autofetch.pm @@ -2,28 +2,24 @@ package Autofetch; use strict; use warnings; -use 5.010; sub fetch { my ($path, $module) = @_; system 'cpanm', -nq, -l => $path, $module; } -sub cachepath { - $ENV{HOME} . '/.cache/lib/' . ($_[0] =~ y|/ |-_|r); -} +sub cachepath { "$ENV{HOME}/.cache/lib/" . ($_[0] =~ y|/ |-_|r) } + +sub modulefy { $_[0] =~ s/\.pm$//r =~ s|/|::|gr } -sub modulefy { - $_[0] =~ s/\.pm$//r =~ s|/|::|gr; -} +my $path = cachepath($0); -push @INC, sub { +push @INC, "$path/lib/perl5", sub { my (undef, $file) = @_; - state $path = cachepath($0); fetch($path, modulefy($file)); return IO::File->new($path . '/lib/perl5/' . $file); }; - + 1;