-1

ファイルを開くコマンドで 2 つのファイル名を渡したいので、1 つのファイルが存在しない場合は別のファイルを開く必要があります。単一の open コマンドでそれを行う方法はありますか? 以下は私のコードです:

open FILE, "/Library/xampp/Documents/$var"

xxx | を持つように $var を渡したい /ライブラリ/ドキュメント/xyz. これを行う方法はありますか?

4

4 に答える 4

1

私が質問を正しく理解していれば、はい、$var「../../../any/arbitrary/file」として提供し、「/Library/xampp/Documents」の下にないファイルを開くことができます(ライブラリの場合、 xampp、または Documents はファイルではなくリンクです。別の数の ..s が必要になる場合があります)。

于 2013-04-21T19:26:43.730 に答える
1

絶対パスまたは現在の作業ディレクトリ以外のディレクトリからの相対パスを指定して、ファイルへのパスを見つけようとしています。

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のが嫌いです。

于 2013-04-21T20:15:34.780 に答える