別のディレクトリから起動すると……?

 またもperlの話題。しかも小ネタも小ネタです。

 例えば、下のようなコードがあったとします。

use strict;
use warnings;

opendir(my $dh,"./");
my @files = readdir($dh);
closedir($dh);

foreach(@files){
  print $_."\n";
}

 このファイルがディレクトリ1にあるとしましょう。ディレクトリ1からこのファイルを実行すると、当然ディレクトリ1の中身が表示されます。

 では、例えばこのディレクトリ1の子ディレクトリであるディレクトリ2からこのファイルを実行するとどうなるのでしょう。ディレクトリ2の中身が表示されるのです。

 このことから、perlを呼び出すと、呼び出したディレクトリをカレントディレクトリとするのではないかという仮説を持ちましたが、ちょっとこの辺良く分かりません。機会があれば調べてみたいと思います。