• 締切済み

Perl で syntax error

Perlを勉強中です。 ローカル環境(Win98 / Apache)でCGI(Perl(5.6.))をテストしようとすると、下記のようなエラーメッセージが出ます。 Premature end of script headers: c:/www/public_htm/up_file.cgi String found where operator expected at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 59, near "open INDD1, "$indd1"" syntax error at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 58, near "open(INDD1, "$indd"" Execution of c:\WWW\PUBLIC~1\UP_FIL~1.CGI aborted due to compilation errors. 多分、ファイルのopen定義が間違ってるような感じなんですが、SOURCEと1日にらめっこしてても、どうにもこうにも解りません・・・ よろしくお願いします。 === SOURCE CODE ================ open(INFILE, "$indd") || die "can't open : $!"; open(OUTDD1, ">$outdd1") || die "can't open : $!"; ※ OUTPUT file のほうは、エラーになってないみたいなのに・・・ ※ いちおう、簡単なCGI(メッセージの表示)は、実行できます。

みんなの回答

回答No.1

Perlのことは全然わかりませんが・・・・ syntax errorって文法間違いってことですよね。 syntax error at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 58, near "open(INDD1, "$indd"" "open(INDD1, "$indd"" 部分の「)」かっことじがないようですが。

shinsa14
質問者

お礼

ありがとうございます。 "open(INDD1, "$indd"" ご指摘のところは、ERROR LOG の出力です。 SOURCE CODE のほうは、下記のようになっていて、)がついています。 open(INDD1, "$indd"); この部分については、エラー部分をコメント化したり、不要部分を「切り取り」「貼り付け」しているうちに、エラーが消えてしまいました。 これって、エディターの問題なんですかね?・・・ Word Pad をつかってるんですが・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • script headers って?

    NO.202703の質問をしたものです。 1.Premature end of script headers: c:/www/public_htm/up_file.cgi 2.String found where operator expected at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 59, near "open INDD1, "$indd1"" 3.syntax error at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 58, near "open(INDD1, "$indd"" 4.Execution of c:\WWW\PUBLIC~1\UP_FIL~1.CGI aborted due to compilation errors. 2.3.4.のエラーについては、解決?できました。 (エラー行をコメント(#)にしたりしてるうちに・・・原因はよくわかりませんでしたが・・・) 1.のエラーの意味がわかりません。  script headers って何のことなんでしょうか? ※ このエラーログはApacheのサーバーのログです ※ このCGIは、フォームデータを受けっとてファイルを更新するようになっています。

    • ベストアンサー
    • Perl
  • 文法はあってるのにサーバーエラーが出る

    perlで構文チェックをしたところ、OKが出たので、 アパッチにて実行したところサーバエラーがでました。 調べたところ、以下のようなエラーが出ましたが、これは、サブルーチンや、ライブラリが呼出されていないのでしょうか?どのように対処すればいいか教えてください。 Premature end of script headers: c:/www/public_html/subsub.cgi Undefined subroutine &jcode::convent called at c:\WWW\PUBLIC~1\SUBSUB.CGI line 8. Premature end of script headers: c:/www/public_html/okikae.cgi Can't locate cgi-bin.pl in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at c:\WWW\PUBLIC~1\OKIKAE.CGI line 3.

    • 締切済み
    • CGI
  • エラーの意味がわかりません

    cgiが動かないため(自作したものではありません)、DOS上で構文チェックをしたところ、エラーがありました。 エラーを見てもよくわからないので教えてください。 エラーは以下の通りです。 >perl -cw a.cgi syntax error at a.cgi line 2, near ".." top_b.cgi had compilation errors. >perl -cw b.cgi Name "main::wday" used only once: possible typo at b.cgi line 18. Name "main::tt" used only once: possible typo at b.cgi line 261. Name "main::start" used only once: possible typo at b.cgi line 176. b.cgi syntax OK 解決のヒントとかあれば、あわせてアドバイスください。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • perlのcgiで-wTを記述するとエラーに

    http://okwave.jp/qa/q7451675.html まだcgiについてわからないことが多く、 色々質問させてもらっているのですが、致命的な?問題がわかりました。 perlにてcgiを作成し、ローカルPCにてコードのチェックのため、 コマンドプロンプトにてC:\adress\test>perl -c encoding とするとエラーが出ます。 ソースを下の行から順にコメントアウトして調べたところ、 一番最初の行の #!/usr/bin/perl -wT で、エラーが出ているということらしいです。 "-T" is on the #! line, it must also be used on the command line at enncoding.cg i line 1. この1文が出てしまいます。 -wTを消すとエラーが出なくなります。 エラーを見つけるための-wT記述だと思っていたのですが、-wT自体がエラーになっているということは、一体どういうことなのでしょうか? 書き方が違うのでしょうか? 詳しく教えて頂きたいです。

    • ベストアンサー
    • CGI
  • 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
  • Perl 教えてください。

    下記のような簡単なスクリプトなんですが、なぜかサーバーにアップすると動きません。 ローカルでコマンドプロンプトから直接実行するとまともに動作します。 パーミッションは「755」と「705」でやってみましたが。 perlのパスは合っていますし、実際同じ場所に置いた他のCGIは動作します。 #!/usr/bin/perl open (DT, "<./data/***/***.csv") or die "File '***.csv' Open Error."; @data = <DT>; $data[0] = ",,,,,,\n"; open (OUT,">./data/***/***1.csv") or die "File '***1.csv' Open Error."; print OUT @data; close (DT); close (OUT); 原因が分からず困っています。 解決策でなく、原因と思えるだけの回答で結構ですので何卒よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 添付ファイル保存perlの実行エラー

    お世話になります。 perl初心者です。 以下ののサイトから拾ってきたスクリプトを実行したところ、エラーがでて上手く実行されません。 http://www.jp-z.jp/perlmemo/parse_MIME-Parser_multipartmail.html ----- #!/usr/bin/perl use MIME::Parser; new MIME::Parser->parse(\*STDIN); ----- error message: Can't locate auto/Mail/Internet/autosplit.ix in @INC(@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:/Perl/lib/AutoLoader.pm line 100. at C:/Perl/lib/Mail/Internet.pm line 10 autosplit.ixが存在しないのかと思ったのですが、モジュールではないようなのでどうインストールするのかもよくわかりません。 詳しい方いらっしゃいましたらお助けください。。

  • CGIエラー

    アクセス解析のCGIを設置しようとしてるのですが、動作確認の際に、以下のエラーが出ます。 The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't locate config.pl in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:\daishin_www\cgi-bin\access\accview.cgi line 83. CGIを設置するのはこれが初めてなので、このエラー文が何を言いたいのか、どこを直せば動くようになるのか、ぜんぜんわからずに困っています。 どなたか教えて頂けませんか? サーバーは自社サーバーでWindowsです。

    • ベストアンサー
    • CGI
  • PHP+MySQL syntaxエラー

    SELECT * FROM option WHERE id='W01' SELECT * FROM option WHERE id='A01' を実行させたところ You have an error in your SQL syntax near 'option WHERE id='W01'' at line 1 You have an error in your SQL syntax near 'option WHERE id='A01'' at line 1 というエラーが返ってきました。 optionテーブルがあり、idというフィールドもあり、 idフィールドでW01、A01ともに存在します。 どなたかお答え頂ければと思います。

    • ベストアンサー
    • MySQL
  • CGIでsoft were errorが出ます。。。

    CGIフォームを設置して試しに送信ボタンを押してみると、柿のエラーが出ます。 Software error: Can't modify subtraction (-) in scalar assignment at form.cgi line 38, near ");" Execution of form.cgi aborted due to compilation errors. 同じパターンのフォームを同じ階層上に置いてあり、そちらは上手く動作します。 今回のフォームは、多少項目をいじったため、CGIの方もそれにあわせて修正したのですが、どこがどう間違ってるのかわかりません。 アドバイスお願いいたします。 また、line 38, near というのは、CGIの中の38行目付近という意味でしょうか? その場合、38というのは、どこからどう数えればよいのでしょうか?

このQ&Aのポイント
  • TS3530を購入し、スマートフォンとの連携について問題が発生しています。プリンターの登録ができず、エラーメッセージが表示されます。
  • パソコンとの接続は正常に行われていますが、TS3530の登録を行う際に問題が発生しています。
  • 次の画面でTS3530が表示されるものの、プリンターの情報取得の処理が進まず、登録ができません。解決方法を教えてください。
回答を見る

専門家に質問してみよう