FreeBSD QandA 329
Q. perl スクリプトに実行許可属性を付けて
     % ./foo.pl
   としたときと
     % perl foo.pl
   の場合で挙動が異なることがあります。
A. 前者と後者で起動される perl(1) のパス(とバージョン)が異なっているためです。
   前者の形式でスクリプトが実行されると、Unix はスクリプトの1行目を見て
   どのプログラムを起動するか判断します。起動されるプログラムは行頭の #!
   に続くパス名で、例えば catman(1) のように #!/usr/bin/perl となっていれ
   ば、/usr/bin/perl が起動されます。
   後者は普通のコマンド実行と同じく、shell によってコマンド検索パスを検索
   して見つけ出した perl が使われますので、環境変数 $PATH の設定によって
   変化する可能性があります。どの perl が使われるか確認するには which(1) 
   コマンドを利用して以下の様に入力します。
     % which perl
     /usr/bin/perl  (実行結果)
   それぞれの perl がどんなバージョンのものか確認するには -v オプション
   を使います。*フルパス* で perl を実行して比べてみてください。
   たとえば /usr/local/bin にある perl を確認するには
     % /usr/local/bin/perl -v
     This is perl, version 5.005_03 built for i386-freebsd
     ... (省略) ...
   と入力します。
   なお、/usr/bin/perl については FreeBSD 2.2 系列では Version 4、
   FreeBSD 3.0-RELEASE 以降では Version 5 になっています。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。