質問: activeperlで#!/usr/bin/が無効 windowsxpにactiveperl(5.16.3.1603)をインストールして、 コマンドラインに「perl script.scr」と入力して スクリプトファイルは実行できるのですが、 スクリプトファイルの1行目に「#!/usr/bin/perl」を記述して、 コマンドラインに「script.scr」と入力して実行しようとすると、 「c:\・・・\script.scrは有効なwin32アプリケーションではありません。」 というメッセージが表示されて正しく実行できません。 perl.exeのあるフォルダをc:\usr\binフォルダにして、 1行目を #!/usr/bin/perl #!c:/usr/bin/perl #!c:\usr\bin\perl などいろいろ試してみましたが、どれも 前述のメッセージが表示されて実行できませんでした。 コマンドラインに「script.scr」と入力するだけで 実行することができるようにするには どのようにすればいいのでしょうか。 script.scrの拡張子scrをplなどに変更して この拡張子のファイルに対してperl.exeに関連付けることにより script.plだけでも実行できるようにはなりますが 拡張子.scrではこの関連付けができませんので #!/usr/bin/perl等を使用する方法で解決したいです。 ジャンクションとかapacheなどが全く分かりませんので これらを使わずに簡単にできる方法がありましたら教えてください。 (なお使っても分かりやすい手順があれば可です) よろしくお願いします。
回答: ファイルの先頭を見て、#!だったらその行を実行コマンドとして実行、というのは、unix系osの機能です。 windowsでは使えません。 http://ja.wikipedia.org/wiki/%e3%82%b7%e3%83%90%e3%83%b3_%28unix%29 scr は、たしか、windowsのスクリーンセーバー用に使われていたと思います。 どうしてもscrのままで、となると難しいと思います。 batファイルに埋め込んで、shebang風に使う、という方法はあるのですが。 windows shebangで検索するといくつか見付かります。