Perlにおけるお勧めのシェバンの書き方

Perlにおける、お勧めのシェバンの書き方。「#!/usr/bin/env perl」。

#!/usr/bin/env perl

Unix/Linuxには、シェバンと呼ばれる機能があり、シェバンに書かれたコマンドで、ファイルに書かれた内容を実行してくれます。

シェバンは「#!」で始まります。

「#!/usr/bin/env perl」がお勧めな理由は、ほとんどのLinux/Unix環境で動くからです。

perlbrewplenvでユーザー環境にPerlをインストールした場合でも正しく動きます。

envコマンドは、環境変数PATHのディレクトリを検索して最初に見つかったperlで実行してくれます。

envを使うことのデメリット

envを使うことのデメリットは、どのPerlを使うかが確定されないということです。envという名前のとおり、PATH環境変数という、環境に依存します。

Perlスクリプトのポータビリティを高めるか、指定したPerlでプログラムを実行するのと、どちらがメリットがあるかという選択になります。

シェバン行は必須ですか?

シェバン行は必須ではないです。

perlコマンドを実行すれば、シェバンに関係なく、perlで実行できるからです。

perl script.pl

Windows環境であれば、シェバンを書かずに、直接Perlで実行するということも多いでしょう。

サーバー運用の現場で作るプログラムでは、perlスクリプトは、シェバンを書いて、拡張子をなしにして、実行ファイルのように扱うという規約や慣例があれば、それに従ってください。

Perlを中心に開発している現場では、Perlのプログラムは、拡張子をplにして、perlで実行するという選択もよいでしょう。

CGIスクリプトにおいては、シェバンは必須です。CGIというプロトコルは、実行権限のあるファイルをそのまま実行し、perlというコマンドで実行してくれるわけではないからです。ApacheなどのWebサーバーでは、シェバンを書かないと「Internal Server Error」になります。

CPANモジュールに含むスクリプトは「#!perl」がお勧め

CPANモジュールを配布する場合に含むスクリプトは「#!perl」がお勧めです。

#!perl

Mojoliciousの本番サーバー起動コマンドのhypnotoadも「#!perl」を使っています。CPANクライアントは、インストール先の、Unix/Linux/Windowsで、スクリプトを実行できるように、この行を、自動的に書き換えてくれます。

hypnotoadで「#!perl」をシェバンとして使っている例

業務に役立つPerl

Perlテキスト処理のエッセンス

PerlでポータブルなLinuxファイル管理入門

ITエンジニアの求人情報など

 ITエンジニアの求人情報・Webサービス・ソフトウェア・スクールなどの情報。

システム開発のお問い合わせ