#!/usr/local/bin/perl -w
use Cwd 'realpath';
print Cwd::realpath( '~/' ), "\n";
# => Use of uninitialized value in print at install.pl
# Cwd::realpath( $file_NOT_DIR );
~ は perlを実行したユーザのホームということでよろしいですか? であれば、ちょっとダサイけど、以下のようなのはいかがでしょうか? :
(最終行がなくともシンボリックリンクを辿らないPATHはgetできます)
#!/usr/bin/perl -w
use Cwd 'realpath';
my $process_real_uid = $<;
my $homedir = (getpwuid($process_real_uid))[7];
print Cwd::realpath($homedir), "\n";
CGIなどでApacheから呼び出される等で環境変数が期待できない場合を除き、以下のコードでも良いと思います。:
my $homedir = $ENV{'HOME'};