Path-ExpandTilde
view release on metacpan or search on metacpan
my $home;
# see File::HomeDir::Tiny
BEGIN { $home = ($^O eq 'MSWin32' && $] < 5.016) ? ($ENV{HOME} || $ENV{USERPROFILE}) : (<~>)[0] }
use if !$home || !-e $home, 'Test::More', skip_all => 'No home directory found for current user';
use Test::More;
is abs_path(expand_tilde('~')), abs_path($home), '~ expands to home dir';
my $username = eval { getpwuid $> };
$username = getlogin unless defined $username;
SKIP: {
skip 'username not found', 1 unless defined $username;
my $user_home = expand_tilde("~$username");
skip 'user home directory not found', 1 unless defined $user_home and $user_home ne "~$username";
my ($save_home, $save_profile) = delete @ENV{'HOME','USERPROFILE'};
my $passwd_home = expand_tilde('~');
@ENV{'HOME','USERPROFILE'} = ($save_home, $save_profile);
skip 'non-environment home directory not found', 1 unless defined $passwd_home and $passwd_home ne '~';
is abs_path($user_home), abs_path($passwd_home), '~username expands to user home dir';
( run in 0.241 second using v1.01-cache-2.11-cpan-8d75d55dd25 )