require-relative
view release on metacpan or search on metacpan
lib/require/relative.pm view on Meta::CPAN
use strict;
use warnings;
package require::relative;
$require::relative::VERSION = '1.0.0';
use Path::Tiny ();
sub import {
my ($class, @paths) = @_;
my ($package, $file) = (caller)[0, 1];
my $dir = -e $file
? Path::Tiny->new ($file)->absolute->parent
: Path::Tiny->cwd
;
for my $path (@paths) {
my $real_path = Path::Tiny->new ($path)->absolute ($dir);
eval "package $package; require q[$real_path];";
die if $@;
}
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
require::relative - like require for relative paths
=head1 SYNOPSIS
use require::relative RELATIVE_FILE;
use require::relative "../test-helper.pl";
=head1 DESCRIPTION
Behaves like require but accepts relative file name.
Primary motivation is for usage in tests where multiple tests can
share configuration or setup.
=head1 AUTHOR
Branislav ZahradnÃk <barney@cpan.org>
=head1 COPYRIGHT AND LICENSE
This module is distributed under Artistic license 2.0
=cut
( run in 2.668 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )