7.3 ファイル名の中のチルダを展開する

  • glob関数を使用する。
open(FH, glob("~joebob/somefile")) || die "Couldn't open file: $!";
  • 置換を使用して、ファイル名を手動で展開する。
$filename =~ s{ ^ ~ ( [^/]* ) }
  {$1
         ? (etpwnam($1))[7]
         : ( $ENV{HOME} || $ENV{LOGDIR}
            ||  (getpwuid($<))[7]
            )
}ex;