〜/ binにあるPerlスクリプトが相対ファイルパスを見つけられないのはなぜですか?


0
#!/usr/bin/env perl
use warnings; 
use strict;
use XML::LibXML;

my $parser = XML::LibXML->new;
my $file = './example.xml';
my $doc = $parser->parse_file( $file );
print ref( $doc ), "\n";

このスクリプトとexample.xmlファイルを/ home / me /に移動すると、スクリプトが機能します。スクリプトとexample.xml-fileを/ home / me / bin /に移動すると、スクリプトはexample.xml-fileを見つけられません。これはbinディレクトリの特別な機能ですか?


1
これはプログラミングの質問ではなく、実行可能ファイルがシェルによってどのように配置されるかについての一般的なコンピューターユーザーの質問です。SUに移動するための投票。
シナンÜnür10年

出向...
...-DVK

それは非常に明確な質問です。私はそれをうまく理解しており、ネイトは正しい答えを与えます。
ブライアンd foy

回答:


4

いや。ただし、「./example.xml」からファイルを開くことになります。これは現在の作業ディレクトリ(cwdUnixの用語では)である必要があります。スクリプトをコマンド検索パス($PATH環境変数)から取得している可能性があります。

絶対パス名で参照すると、問題なく機能します。私はまた、上に読んでお勧めしたいcwdpwd「およびman pwd」。


または、何よりも、FindBinを使用してスクリプトパスを特定します...

willert:いいえ、FindBinを使用しないでください:perlmonks.org/?node_id
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.