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 )