vendorlib
view release on metacpan or search on metacpan
lib/vendorlib.pm view on Meta::CPAN
# fixup slashes for @INC on Win32
if ($^O eq 'MSWin32') {
s{\\}{/}g for @paths;
}
# expand tildes
if ($^O ne 'MSWin32') {
for my $path (@paths) {
if ($path =~ m{^~/+}) {
my $home = (getpwuid($<))[7];
$path =~ s|^~/+|${home}/|;
}
elsif (my ($user) = $path =~ /^~(\w+)/) {
my $home = (getpwnam($user))[7];
$path =~ s|^~${user}/+|${home}/|;
}
}
}
# remove any directories that don't actually exist
t/01basic.t view on Meta::CPAN
local @INC;
my %config = %Config;
*vendorlib::Config = \%config;
local $config{vendorarch} = '~/';
vendorlib->import;
my $expanded = (getpwuid($<))[7] . '/';
skip 'home directory reported by getpwuid does not exist', 1 unless -d $expanded;
shift @INC if $INC[0] eq '/etc/perl';
is $INC[0], $expanded, 'bare tilde expansion';
}
# test tilde expansion with user name
SKIP: {
skip 'no tilde expansion on Win32', 1 if $^O eq 'MSWin32';
local @INC;
my %config = %Config;
*vendorlib::Config = \%config;
my $whoami = (getpwuid($<))[0];
local $config{vendorarch} = "~${whoami}/";
vendorlib->import;
my $expanded = (getpwuid($<))[7] . '/';
skip 'home directory reported by getpwuid does not exist', 1 unless -d $expanded;
shift @INC if $INC[0] eq '/etc/perl';
is $INC[0], $expanded, 'tilde expansion with user name';
}
( run in 0.232 second using v1.01-cache-2.11-cpan-454fe037f31 )