
http://oshiete.goo.ne.jp/qa/7451675.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自体がエラーになっているということは、一体どういうことなのでしょうか?
書き方が違うのでしょうか?
詳しく教えて頂きたいです。
No.1ベストアンサー
- 回答日時:
#!で始まる行は、そのファイルを単独で実行するときの引数指定です。
「perl -c encoding.cgi」というように、明示的にperlインタプリタを起動してファイル指定した場合は、#!の行は基本的に意味を持ちません。
その上で、perlインタプリタが「#!行では -T オプション付になっているのに、-Tオプションなしで実行しようとしている」ということでエラーにしているのです。
チェックの時も、「perl -cwT encoding.cgi」のように、-Tオプションを付けてください。
そうすればエラーにならなくなります。
ああ、そういうことだったんですね!
訳も分からず
perl -c xxx.cgiと、いつも実行しておりました・・・・
ありがとうございます。
No.2
- 回答日時:
エラーメッセージ読んでます?
そんな「1行ずつコメントアウト」なんかしなくても「at enncoding.cgi line 1.(encoding.cgiの1行目)」て書いてありますよ。「"-T" is on the #! line, (-Tが「#!」の行にある)」とエラーの原因になることも説明ありますし。
なぜ、エラーメッセージで検索したり、perldocを読んだりしようとしないのでしょうか?
ただ「エラーを見つけるため」では無いのです。
それぞれに意味があって、結果「エラーを見付けるのに有用」ということです。
perlのオプションは、perldocのperlmanにあります。
perldocには和訳もあります。
http://perldoc.jp/docs/perl/5.10.0/perlrun.pod より
-w (略)その他たくさんの疑わしい事に警告を出します。
-T 「汚染」チェックをオンにして、テストできるようにします。(略)
セキュリティ上の理由から、このオプションは Perl にかなり早く渡さなければなりません。 これは通常コマンドラインの最初の方につけるか、#! 構造に対応する システムではここに書くかです。
で、ここです
「コマンドラインの最初の方につけるか、#! 構造に対応する システムではここに書くかです」
perl -c encoding と、コマンドラインで実行しているし、そもそもWindowsでの実行なので「#! 構造に対応する~」は無視していいです。なので「コマンドラインの最初の方につける」です。
先に-cオプションだけ起動して、あとから-Tを追加しているので「it must also be used on the command line(コマンドラインでも使わなければならない)」と出ています。
ついでに言えば、perl -c encodingのように実行するなら、#!の行は不要です。
やりたいことがさっさとやりたい、という気持ちはわからなくもないですが、もうちょっPerlの基本とCGIの基本を勉強してからの方がよくないですか?
ここ数日わけもわからずコピペして見当違いなことやってた時間を、良書を読むのに回していたら、だいぶ違っていたと怖もいますよ。
返信ありがとうございます。
参考書籍はあるのですが、見落としていたか載っていなかったかのどちらかです・・
持っているのはラクダ本(下巻のみ)ネズミ本、CGIサンプル大全集、CGI/Perl超入門です。
ラクダ本の上巻は必須でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
フォームを再送信しますか?
-
ホームページでCGIのフォームを...
-
(フリーの)ツリー掲示版CGI、...
-
ChatGPT
-
/bin/awk '{print $5}'ってどう...
-
入力フォーム(電話番号)
-
POSTメソッドの最大容量について
-
ChatGPTの性能は昔に比べて上が...
-
chatGPTみたいに画像生成出来る...
-
iDeCo
-
皆さんはGUCCIはハイブランドだ...
-
cgi-binのエラー?
-
Trees掲示板CGI(CGI-Resque氏...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheでのCGIについての質問
-
apacheで動作してIISで動作しな...
-
CGIエラー
-
EXCELファイルに誰がアクセスし...
-
KENT WEB(昨日の続きです)
-
《エクセルVBA》「他の人が該当...
-
CGIでソースがそのままでてしま...
-
FTPにて553エラー
-
ASP(IIS?)のエラーについて
-
VBScriptで、ファイルから任意...
-
ASP.NETでメール送信時のエラー
-
VBAでサーバーにアクセスするに...
-
ラジオボタンのグループ化
-
URLに~/cgi-bin/~を隠す方法
-
ASPから既存のexcelブックを開...
-
古ーくからフリーのtree.cgi掲...
-
CGIの設置について
-
これってなに!??
-
HTML文書の中で環境変数を使う...
-
イントラネット用HP アクセス解...
おすすめ情報