- ベストアンサー
perlのrequreの設定
perlでCGIを書いていますが、一部のhoge.pmは別のサーバーに置いてあります。その場合一部のhoge.pmを別のサーバーから読み込むことは可能ですか? require 'https://www.hoge.co.jp/home/hogehoge/hoge.pm' にすると’can't locate'のエラーになります。どのようにしたら良いのでしょう? perlを始めたばかりで知識がありません。よろしくお願いします。
- super_su
- お礼率100% (2/2)
- Perl
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
よ~っく考えると、それがもし読み出せたとしたら、 やばいですって! それは、hoge.pmを実行した結果じゃないか?ってことです。 逆に、ソースで読み出せたら、 それは重大なセキュリティーホールになりますね。 ソース内で例えばMySQLのパスワードが 書いているとか、サーバー内のファイルがどこにあるなど。 そんなもの外に出すべきではないのですよ。 なので、requireの変わりにcURLなどで 実行結果を取り込めますが、今度は 絶対に動作しません。それはソースじゃないため!。 なので、そのファイルを 貴方が実行しようとしてる環境にコピーしてください。 にしかならないですね。
その他の回答 (1)
- _kappe_
- ベストアンサー率68% (1522/2216)
通常の方法では不可能です。 別のサーバーにあるhoge.pmをローカルファイルシステムにコピーしてから、requireで利用してください。
お礼
回答ありがとうございます。 別の方法を考えてみます。
関連するQ&A
- Perlの書き方について
perlを勉強していて、似たような配列やハッシュの場合でしたらなんとか解決出来たのですが、以下の場合が思うような結果が得られず困っているので、どなたか教えていただきたく質問しました。 例) my $hoge1=10; my $hoge2=9; my $hoge3=8; my $hoge4=7; my $hoge5=6; my $hogehoge; for(1..5){ $hogehoge+=$hoge$_; } 上記の書き方の場合、「$hoge$_」でエラーが出ます。 このような場合は、どのように書けばいいのでしょうか。 よろしくお願いします。
- ベストアンサー
- Perl
- perl niftyについて。use CGI;
画像アップロードのスクリプトを作ろうと思っているのですが、 use CGI; という記述をすると、ここでエラーに引っかかります。 下はperl checkerでのエラー表示です Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at a.cgi line 10. BEGIN failed--compilation aborted at a.cgi line 10. 参考URLはここ http://www.topstudio.co.jp/~kmuto/html/node38.html niftyでは使えないようになってしまっているのでしょうか? また、CGI.pmを使わないファイルアップロードの仕組みを解説しているサイトを知っている方がいたら、教えてくださいませ。
- ベストアンサー
- CGI
- pp (Perl Packager) で requireの代わりになるもの
ActivePerl v5.8.7 をWin-2000で使っています。 オリジナルのスクリプト内で、これもオリジナルのモジュールをrequireしている場合に、 ppでexe形式に変換できるのですが、他のPCでコピーして使おうとしたときに、 ”require先のファイルが無い”とエラーになってしまいます。 これを回避する方法はないでしょうか? (requireの代わりに、該当箇所にモジュールファイルの内容すべてをペーストしてしまう、ということで一時凌ぎはできるのですが、何か違うような気がしています) よろしくお願いいたします。 ------------------------ #!perl require "c:\\perl\\sub\\userfunc.pm"; : : ------------------------ pp -o sample.exe sample.pl c:\perl\sub\userfunc.pm とやって、exeを作っています。 (c:\perl\sub\userfunc.pmを持たないPCで)実行すると、 C:\>sample.exe Can't locate c:\perl\sub\userfunc.pm in @INC (@INC contains: ・・・/inc CODE(0xdca6ac) . CODE( 0xdca7cc)) at script/sample.pl line 2.
- ベストアンサー
- Perl
- perl パラメータ
このようなソースがあります。 require "test.cgi"; これはperlを読み込めますが、 require "test.cgi/path"; としますと、500Errorです。 .cgiの後ろのPATH_INFOをrequireで読み込むperlのパラメータとして渡す方法はありますか。
- ベストアンサー
- Perl
- perl CGIでの@INC
たびたびお世話になります。 perl CGIを作っています。作っているCGIとは別のディレクトリにあるファイルをrequireしたいのですが、リモートログインできないレンタルサーバのため@INCのいじり方がわかりません。 こういった場合のrequire方法(あるいはプログラム再利用方法)をお教えください
- ベストアンサー
- Perl
- Perlでモジュールを作りましたが、
use A::AA; 自作のA::AAのPerlモジュールをインストールしましたが、いざ使うときに Can't locate A/AA.pm in @INC (@INC contains: ... とエラーが発生しました。 A/AA.pmの存在の確認はとれましたが、何か関連付けさせる仕組みが必要なのでしょうか? C:\usr\site\lib\aに aa.pmが入っています。
- ベストアンサー
- Perl
- No.616076に続けて質問です
jcode.plを読み込みたく、 #!/usr/bin/perl require './jcode.pl'; としたところ、 Can't locate ./jcode.pl…というエラーが起きました。 どのような原因が考えられますでしょうか?
- ベストアンサー
- Perl
- Jcode.pmについて
ネット上からダウンロードしてきたCGIプログラム内で、Jcode.pmを使用しているようなのですが、サーバ にUpしたところ、以下の様なエラーが表示されました。 ※1 Can't locate Jcode.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i386-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i386-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl .) at access/accview.cgi line 68. ※2 BEGIN failed--compilation aborted at access/accview.cgi line 68. ちなみに、accview.cgi line 68には use Jcode; と書かれていました。 エラーの原因として、何がありますか? また、その解決法を教えていただきたいです。
- ベストアンサー
- Perl
- @INCのパスを変更・追加する方法はありますか?
現在Movable Typeの設定を行っておりますが インストール途中に以下のようなエラーメッセージが出力されます。 --- Can't locate MT/Bootstrap.pm in @INC (@INC contains: lib C:/Perl/site/lib C:/Perl/lib .) at X:\hoge\mt\mt.cgi line 12. BEGIN failed--compilation aborted at z:\hoge\mt\mt.cgi line 12. --- 調べてみると、Bootstrap.pmファイルが見つからないよという意味の エラーメッセージだという事がわかりました。 Bootstrap.pmファイルは存在しているのですが、@INCにファイルへのパスが通っていない為、このようなエラーメッセージが起こるのではないかと考えています。 そこで、@INCにパスを追加しようと思ったのですが、出来ませんでした。 コマンドプロンプトから c:\>perl -I <通したいパス> とすれば、@INCの値が更新されるのかと思ったらそういうわけでは無かったようで・・・ どのようにして、パスを追加すればよいのかわからなくなりました。 解決方法がありましたら、お願いいたします。
- ベストアンサー
- Perl
- Perlのモジュール呼び出しについて
Perlのモジュール呼び出しについて質問があります。 windows2000/apache/perlの組合わせにより LOCALでWebサーバを構築しています。 かなり初心者質問で申し訳ありませんが、以下の内容で困っています。 Web上で use XXX と書いたperlを呼び出すと Can't locate XXX.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at (プログラムの場所) となって動作しません。 XXX.pmはC:/Perl/libにあることは確認しました。 ただしDOS上で同じplファイルを起動させると 問題なく動作しました。 何処に問題があると考えられますか? みなさまのお知恵をお貸し下さい。 よろしくお願いします。
- 締切済み
- Perl
お礼
ありがとうございます。 その通りですね。 別の方法を考えてみます。