ファイルを開くコマンドで 2 つのファイル名を渡したいので、1 つのファイルが存在しない場合は別のファイルを開く必要があります。単一の open コマンドでそれを行う方法はありますか? 以下は私のコードです:
open FILE, "/Library/xampp/Documents/$var"
xxx | を持つように $var を渡したい /ライブラリ/ドキュメント/xyz. これを行う方法はありますか?
私が質問を正しく理解していれば、はい、$var
「../../../any/arbitrary/file」として提供し、「/Library/xampp/Documents」の下にないファイルを開くことができます(ライブラリの場合、 xampp、または Documents はファイルではなくリンクです。別の数の ..s が必要になる場合があります)。
絶対パスまたは現在の作業ディレクトリ以外のディレクトリからの相対パスを指定して、ファイルへのパスを見つけようとしています。
use Path::Class qw( dir file );
my $file_qfn = 'xxx'; # /Library/xampp/Documents/xxx
-or-
my $file_qfn = '/Library/Documents/xyz'; # /Library/Documents/xyz
-or-
my $file_qfn = '../Docs/zzz'; # /Library/Docs/xampp/zzz
my $abs_file_qfn = file($file_qfn)->absolute(dir('/Library/xampp/Documents'));
open(my $fh, '<', $abs_file_qfn)
or die("Can't open \"$abs_file_qfn\": $!\n");
することもできますが、私はそれをchdir
する/Library/xampp/Documents
のが嫌いです。