![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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で質問しましょう!
似たような質問が見つかりました
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- PHP ワードプレスサイト PHP8.0.25でのWarningエラー 1 2023/06/12 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コード表記
-
文法はあってるのにサーバーエ...
-
EXCELファイルに誰がアクセスし...
-
URLに~/cgi-bin/~を隠す方法
-
Apacheをlocalhostで動かしてい...
-
PerlでWEBサイトを作るために必...
-
CGIをフレームで表示するには…
-
FTPサーバー上のデータにADO接...
-
ユーザの所属するグループを取...
-
ssiのinclude fileについて
-
cgiが動作しない 実行すると 構...
-
ホームページにコメント機能を
-
Image::Magickの呼び出し
-
HTMLにCGIを
-
以前書きこんだ者です。Apache...
-
<img src=
-
CGIの外部スタイルシート
-
ラジオボタンのグループ化
-
アクセスログの取得について
-
エディタについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheでのCGIについての質問
-
HTTP 501未実装 エラーについて
-
perlのcgiで-wTを記述するとエ...
-
cgiにアクセスしても画面が真っ白
-
ケータイサイトの3社別自動振り...
-
コード表記
-
CGIエラー
-
設置場所場わかりません。
-
CGIをHTML(scriptタグ)上でうま...
-
CGIエラー
-
文法はあってるのにサーバーエ...
-
Internet Sever error 500
-
Line Linux でFFAを設置したい...
-
うまくいきません
-
CGIでのPC内でのテストで画面が...
-
ローカルでのCGIについて
-
CGIをwebに設置した後の5...
-
なんでサーバーエラー??
-
何故?Forbidden
-
CGIがうまくアップできない(50...
おすすめ情報