WindowsXPにActivePerlをインストールしてスクリプトファイルを実行する方法
- WindowsXPにActivePerlをインストールしてスクリプトファイルを実行しようとするとエラーメッセージが表示される。
- perlスクリプトファイルの先頭に「#!/usr/bin/perl」を記述する方法では解決できない。
- 拡張子をplに変更しperl.exeに関連付ける方法で対処できるが、scr拡張子ではできない。簡単な方法を教えて欲しい。
- ベストアンサー
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などが全く分かりませんので これらを使わずに簡単にできる方法がありましたら教えてください。 (なお使っても分かりやすい手順があれば可です) よろしくお願いします。
- fs3yjmo
- お礼率75% (28/37)
- Perl
- 回答数1
- ありがとう数13
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ファイルの先頭を見て、#!だったらその行を実行コマンドとして実行、というのは、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で検索するといくつか見付かります。
関連するQ&A
- #!/usr/local/bin/perlで命令が出せません。
プログラミングのド素人で、独学でwindows上でcygwinを使っている者から質問させていただきます。「#!/usr/local/bin/perl」というコマンドをプログラムの先頭に書いて、[ファイル名]を入力してcygwinで命令をしたところ、命令が実行できず、「commond not found」と出てしまいました。そこで、ネット上で、いろいろ調べて、試してみたのですが、どうしても、解決できません。 どなたか、アドバイスをいただけないでしょうか? ちなみに、perl [ファイル名]では、命令を実行することができます。「type -a perl」というコマンドを入力すると、「/cygdrive/c/Perl/bin/perl」というのがでてきたので、「#!/cygdrive/c/Perl/bin/perl」というコマンドを書いても上手くいきませんでした。 ちなみに、私が書いたプログラムは、以下のようなものです。 #!/cygdrive/c/Perl/bin/perl (あるいは#!/usr/local/bin/perl) # hello -- 挨拶のプログラム print ("hello");
- ベストアンサー
- Perl
- #!/usr/local/bin/perlの変更。
┬ cgi_script │ └***.cgi │ └ access_g └11111 └22222 └***.cgi 今まで、cgi_scriptフォルダの直下にあるcgiファイルの一番上の行は #!/usr/local/bin/perl できちんと動作していました。 今は、そのcgi_scriptフォルダと同じところにあるaccess_gフォルダの中にある、 11111フォルダの下の2222フォルダの下にあるcgiファイルを実行させたいのですが、 #!/usr/local/bin/perl をどのように変更していいかわからなくなってしまいました。 動作させたいcgiファイルはcgi_scriptフォルダの中に入れたところきちんと動作したので、 動作上の問題はないと思われます。 どうぞよろしくお願いいたします。
- ベストアンサー
- CGI
- perlの1行目が#!/usr/bin/perlだと動かず#!/usr
perlの1行目が#!/usr/bin/perlだと動かず#!/usr/bin/perl5.8.9だと動くのですが、 #!/usr/bin/perlで動くようにするにはどうしたらいいのでしょうか? インストールされているperlは This is perl, v5.8.9 built for darwin-2level です。 どこかでパスの設定をしてやればいいと思うのですが、 どこに何を書けばいいのかよくわかりません。 環境はMacOsX v10.6 SnowLeopardです。 どなたかよろしくお願いいたします。
- ベストアンサー
- Perl
- 「#!/usr/bin/perl --」でなければ動作しないのはなぜ?
新しい職場に来て、あるCGIの設定を依頼されたのですが、どのような設定になっているのか、どのプログラムをアップしても「Internal Server Error」になってしまいました。 人に聞いて、「#!/usr/bin/perl」を「#!/usr/bin/perl --」としなければ動かないことまでは分かりました。 確かに、先に他の方が作成されたらしいCGIプログラム(単純な構成のものばかりです)ではすべて「#!/usr/bin/perl --」となってました。 こうしなければ、どんな簡単なプログラムでも絶対に動かないようです。 「*.cgi」というファイルが1つのみ(他の構成ファイルは他の形式)というプログラムならその方法で動いたのですが、複数の「*.cgi」ファイルで構成されているものはどうしても動きませんでした。 構成するファイルの中に、先頭に「#!/usr/bin/perl」の行がないファイルもあるのですが、もしかしてそのせいでしょうか? その場合、どうしたら解決できますか? そもそも何が原因なのでしょう? 今まで、色々な会社でCGIをいじってきましたが、初めての経験で戸惑っています。 FFFTPの設定(開業など)の問題ではないように思えるのですが、サーバーの設定がおかしいのでしょうか? 「#!/usr/bin/perl --」としなければ絶対に動かないというのは、どういう場合に起こる現象なのですか?
- 締切済み
- CGI
- /usr/local/bin/rubyを実行するには
OSはFedora10を使っています。 /usr/local にRubyを展開し、以下のコマンドを入力しインストールしました。 cd /usr/local/ruby ./configure make make test sudo make install /usr/local/bin にrubyの実行ファイルがあるようなのですが、bashは /usr/bin を探索し、rubyが存在しないといいます。 /usr/local/bin/ruby が実行されるようにするにはどうすれば良いか教えて頂けないでしょうか。よろしくお願いします。
- ベストアンサー
- Linux系OS
- WindowsでPerlをする際,1行目の"#! ~"はどのように?
Perlの参考書・本等ではプログラムファイルの第1行目は #! /usr/local/bin/perl という1行がよく有りますが,WindowsXPを用いている場合では,この1行をどう直せばよいのでしょうか? #! (perl.exeが存在するフォルダのパス) でよいのでしょうか? 私はWindowsXPを使っていて,この1行を使わずにプログラムを書いておりましたので,この1行の意味がよく分かりません。 ある参考書には,"#!はその行に書いたコマンドに,ファイルの残りの部分を渡して実行すると言う性質を持っている"と有りました。だから,試しにfile1.plとfile2.txtを準備し, file1.plの中身 #! (perlの存在するフォルダのパス)\perl.exe while(<STDIN>){ print; } file2.txtの中身 hello world として,コマンドプロンプトで file1.pl < file2.txt としたのですが正しく動作しませんでした.(perl file1.pl < file2.txt と入力した場合は正しく"hello world"となりました)
- ベストアンサー
- Perl
- #!/usr/local/bin/php
XAMPPで自宅サーバー勉強中です、 レンタルサーバーの時はPHPファイルの1行目に #!/usr/local/bin/php と記入し拡張子をabc.cgiとしていました、 自宅サーバーの場合の1行目と拡張子はどのように 書くのですか、よろしくお願いします。
- ベストアンサー
- PHP
- #!/usr/bin/perl --でも不安定です
#!/usr/bin/perl ですと全く表示されず、Internal Server Error. #!/usr/bin/perl -- でも30%ぐらいしか画面表示されません。 サーバのファイルをTeraTermで見てもおかしなファイルが見当たりません。 問題のファイルを調べる方法はありますでしょうか? Carpモジュールをuseしても相変わらずInternal ServerError.でさっぱり見当がつきません。
- ベストアンサー
- Perl
- activeperl5.6が起動できない
activeperl5.6が動きません。 activeperlをインストールして、apacheのhttpd.confの中身を本を参考に編集しました。 sampleのhello.plというファイルを自分の環境ではc:\www\cgi-binというフォルダーの中にいれ、 ScriptAlias /cgi-bin/ "C:/www/cgi-bin" <Directory "C:/www/cgi-bin"> AllowOverride None Options None AddHandler cgi-script .cgi .pl でcgiの実行を許可して AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl で拡張子とperlを関連付けています。 browserからたとえばhttp://localhost/hello.plを入力すると 実行が許可されていないとブラウザーで表示されます。 Forbidden You don't have permission to access /test.pl on this server. Apache/1.3.39 Server at localhost Port 80 アパッチのエラーログを見ると、 [error] [client 127.0.0.1] couldn't spawn child process: c:/
- ベストアンサー
- CGI
- activeperl mac
拡張子に.plがついたファイル,perlを実行しtxtファイルを作成しようとしましたがMacでは.plファイルを読み込まず、起動しません、Activeperlをインストールしましたが反応がありません、plを実行するにはどうしたら良いでしょうか?
- 締切済み
- Mac
お礼
Windowsでは使えないということが分かりましたので、perl.exeに関連付けられた拡張子.plを使って実行するようにします。ありがとうございました。