- 締切済み
Activeperlのエラーメッセージ
こんにちわ。 perlについては、勉強はじめたばかりで、 まだ、使い方になれてない段階です。 それでサンプルを見ながら勉強しようと考えていますが、 それさえも、うまくいかない状態です。 現在、日経ソフトウェアの”ずばりわかるWebプログラミング2.0”を見て勉強しようとしています。 http://itpro.nikkeibp.co.jp/article/MAG/20070410/267630/ 第1部のpart2のサンプルが動かなくて困っています。 本に載っているようにactiveperlやapacheのインストールをして、 それぞれ、本のように動作設定して、 サンプルにあるアプリケーションIDを設定して実行しましたがエラーが出て動きません。 どうしてでしょうか? 動かない箇所は次のところのようです。 サンプルプログラム #最初途中 略 # Assemble all options. my $option_string = join('&', @option_list); my $url = "${request_url}?${option_string}"; # Retrieve result. print STDERR "\$url = ${url}\n"; my $response_string = get($url); my $response_hashref = XMLin(\$response_string); #以下、略 で、my $response_hashref = XMLin(\$response_string);の行を実行したときに、以下のようなmessageが出るようです。 no element found at line 1, column 0, byte -1 at C:/Perl/lib/XML/Parser.pm line187 まだまだ、初心者でサンプルを実行しながら、感覚を磨いていこうと思っていますが、 本には説明されていないようなメッセージが出て困っています。 ぜひ、アドバイスをお願いします。 実行環境 Activeperl5.8.8 build820 Web Server Apache2.0.59
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
- sakusaker7
- ベストアンサー率62% (800/1280)
- sakusaker7
- ベストアンサー率62% (800/1280)
- sakusaker7
- ベストアンサー率62% (800/1280)
関連するQ&A
- 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をインストールしたいんですが、Apacheを使っています。
サーバはApache1.3.24です。ActivePerl5.6.1をインストールしたいのですが、全然分かりません。pathとかの設定は必要なんですか?また、どのように、実行するとか、どこに、perlのプログラムを保存するとか、分かりません。 1通り、分からないのですが。。。教えて下さい。良いホームページでもいいです。自分では、良いホームページを見つけることができませんでした。 基本的なことは分かっていますが、perlは全然知らないので。。お願いします。httpd.confとかも設定するのですか?
- ベストアンサー
- Perl
- Perl5とActivePerl
いつもお世話になっています。 HP制作をしており、やむを得ずPerl・CGIを勉強しています。 初めて3日目くらいの超初心者です。 大変基本的な質問で申し訳ないのですが、 PerlとActive Perlの違いが知りたいのです。 CGI自体はプログラミングされているものを購入して使うつもりで、今設置作業をしているのですが、Perlのことがあまりにも分からないので、「はじめてのPerl/CGIプログラミング」という本も読みながら進めています。 そのCGI開発元では環境条件として「Perl 5.00503以上がインストールされていること」とあるのですが、これはActivePerlとは別ですか? 本「はじめてのPerl/CGIプログラミング」にはActivePerl-5.8.7.813をインストールできるCDが付属しているので、可能ならこのActive Perlを使いたいのですが、無理なのでしょうか? 基本的な質問で申し訳ありませんが、どうぞよろしくお願いいたします。
- ベストアンサー
- CGI
- ActivePerlでImage::Magick使いたいんですけど助けてください。
OSはWinXPです。 ちなみにActivePerl-5.10.1.1006-MSWin32-x86-291086.msi(確か)でImage::MagickはImageMagick-6.6.1-Q8です。 perlでためしに作ってみた文章をいじるプログラムを実行すると問題なくできるのですが、画像をいじるプログラムを作って実行すると”core_rl_magick.dllが見つからなかったためこのアプリケーションを実行できません”というエラーメッセージが出ます。ActivePerlとImageMagickをインストールしなおしても同じエラーがでます。 今までは画像をいじるプログラムを実行してもでなかったので対応に困ってます。 最近セキュリティをking softにした時にセキュリティに引っかかったファイルをろくに見ずに消去してしまったので、もしかしたらその中に入っていたのかもしれません。 perlを勉強し始めたばかりなので困っています。もし対処法を知っている方がおりましたら教えてください。 よろしくお願いします。
- 締切済み
- Perl
- 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などが全く分かりませんので これらを使わずに簡単にできる方法がありましたら教えてください。 (なお使っても分かりやすい手順があれば可です) よろしくお願いします。
- ベストアンサー
- Perl
- Perlの XMLin()はPHPではどうなるのでしょうか? PerlからPHP part3
Perlの以下のソースをPHPに置き換えた場合、 どのように書くのが一般的でしょうか? PHPは4.3系を使っています。 # Perl use XML::Simple; my $xml = XMLin( $content ); my $namae = $xml->{NAMAE}; PHPとXMLのお勧め本も知りたいです。
- ベストアンサー
- PHP
- ApachePOIでエラー
ApachePOI3.9をインストールして、ECLIPSに入れて、サンプルコーディングを試して見ました。 実行したところ、次のエラーが表示されました。 java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/WorkbookFactory コーディング(抜粋)は以下の通りです。 import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.WorkbookFactory; public void doNippou(HttpServletRequest request, HttpServletResponse response) { String path = getServlet().getServletContext().getRealPath("document"); FileInputStream fi = new FileInputStream(path + File.separator + "A4nippou.xls"); Workbook wb = WorkbookFactory.create(fi); Sheet sheet1 = wb.getSheetAt(1); response.setContentType("application/msexcel"); String fname = "A4nippouyyyymmdd.xls" ; // ファイル名を設定 response.setHeader("Content-Disposition", "attachment; filename=" + fname); OutputStream out = response.getOutputStream(); wb.write(out); out.close(); } 実行環境は、CentOS5,Tomcat5.0,jdk1.4です。 Javaのバージョンが1.4ではApachePOI3.9が動かないのでしょうか。 よろしくお願いします。
- 締切済み
- Java
- ActivePerl 1行入力で 'と"がある場合
ActivePerlの初心者ですが基本的なことが分からないので教えてください。 まだ覚えたばっかりで1行入力でいろいろ書式を入力して確認しながら覚えているのですが 例えば、ネット上に 各行の最初の10文字を捨てる perl -lne 'print substr($_, 10) = ""' file というようなサンプルが記述されているのですが 実際に入力してみると 「Can't find string terminator "'" anywhere before EOF at -e line 1.」 というようなエラーが出ます。 どうも ' が使えないようなのですが なぜエラーになるのかがよく分かりません。 この原因が分からないので試行錯誤で ' を " で行ったりして エラーを回避しながら確認しているのですが 上記のように ' と ' の中にさらに " と " がある場合には どのように回避したらよいのかがよく分かりません。 上記のような例の場合にはどのように入力すれば エラーが出なくなるのでしょうか。
- ベストアンサー
- Perl
- 1行目、Perlの宣言
ActivePerlをC:\Perlにインストールしました。するとperl.exeはC:\Perl\bin\perlにありました。 そこでCGIファイルの1行目に #! C:/Perl/bin/perl としましたが、実行してみるとコードがそのまま表示されてしまいます。 「Perl」と大文字を含むからかと「P」を小文字に変えてみたり、あるいは「/」を「\」にしてみたりと試しましたが、やはり機能しません。 httpd.confは教科書に書いてある通りに書き換えました。 何が原因でCGIがまともに動かないのでしょう。 OSはWindows Vista、Apacheは2.0.54、ActivePerlは5.8.7.813です。
- ベストアンサー
- CGI
- ActivePerl-5.10.0.1004の日本語対応にする方法
超初心者の質問ですみません。 今、Perlの絵本でActivePerlの勉強中ですが use encording"shiftjis"; $a=1; print "はじめは$aでした。\n"; $a=++; print "1増えて$aになりました。\n"; $a=--; print "1減って$aに戻りました。\n"; を実行しても、 Can't locate encording.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib . ) at hello8.pl line 1. BEGIN failed--compilation aborted at hello8.pl line 1. と表示されます。 解消法を教えてください。
- 締切済み
- Perl
補足
こんにちは、 試してみたところ use LWP::Simple qw(get); に変えたら条件つきでうまくいきました。 PCにウィルスセキュリティ(ソースネクスト)を設置してまして、 これにファイアウォールの機能を使わなければ、今までと同様のことが起こってました。 “条件つきで防御”にすると、起動時に問合せWindowがでて、 アプリケーションごとに許可設定ができるのですが、 このスクリプトの場合、インターネットのアクセスを許可するかどうか聞いてきませんでした。 なにはともあれ、ようやく一歩を踏み出した形になりました。 このqw(get)とはどういう意味でしょう? セキュリティソフトの問題はメーカに聞くべきなんでしょうね。 サポートに連絡してみようと思います。 ありがとうございました。