• 締切済み

use strict;でエラー

use strict;と書くとエラーになります。 strict.pmをstrict1.pmにしてuse strict1;にするとエラーはなくなります。 strictは予約語ですか? これと同じ現象になった人はいませんか?

みんなの回答

回答No.3

あ、なるほど。 strictをロードできないのかと思ってましたが、もしかしたらstrictは質問者さんのモジュールの名前ですか? そうだと仮定すると、strictはすでにそういうモジュールがあるのでそちらが使われたんだと思います。(小文字で始まるモジュールは「プラグマ」と言います) なので質問者さんのモジュールはロードされずに、そのモジュールにアクセスした時エラーが出たとかしたのだと思われます。 どちらにしろエラーメッセージを補足してもらえれば分かるかと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

だから「モジュールやパッケージの名前は大文字ではじめろ」っていうのに....

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

エラーの内容はなんですか?

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

関連するQ&A

  • use strictとは

    use strict;と書いた行でエラーになっているようです。 strict.pmが無いからでしょうか? strict.pmはjcode.plみたいに、使いたい人がググってダウンロードしてサーバに置くものなんでしょうか?

    • ベストアンサー
    • Perl
  • perl use strict エラーにならない?

    perlの使い方を勉強しているのですが use strict;を記述すると 変数宣言が必要になるということですが 以下のように記述してもエラーになりません。 use strict;を記述すると my $a;がないと$a="Hello";で エラーになるのではないのでしょうか。 ---test.pl---- use strict; $a="Hello"; print $a; -------------- >test.pl Hello > (Windows7, ActivePerl)

    • ベストアンサー
    • Perl
  • use strictとグロブ?

    cgi-lib.plのReadParseの引数でParamグロブを使った場合、 use strict;をすると、必ず以下のエラーが表示されます。 use strictはそのまま使いたく、他の部分も厳密にチェックしたいのですが 何かよい方法はありますか? use strict; require 'cgi-lib.pl'; &ReadParse(*Param); my $MODE = $Param{'MODE'}; <----- errro Variable "%Param" is not imported at

    • ベストアンサー
    • Perl
  • use strictが効かない (PERL)

    たびたびお世話になっております。 PERL version 5.14.2 をWindows 7 のコマンドプロンプトから起動して使っています。 use strict; と一行目に書くと 宣言されていない変数があれば拒絶されるとのことで #!/usr/bin/perl use strict; use warnings; $a = 10; print "$a\n"; というスクリプトを書きました。が、すんなり動いてしまいます。 use strict; は どうすればうまく効くのでしょうか。 ご指導お願いします。

    • ベストアンサー
    • Perl
  • strict.pmはどこにありますか?

    ローカル環境ではstrictを ダウンロードしていれた記憶もないので 標準モジュール かな?っと思っていたのですが さくらインターネットを借りようとしているのですが use strict; を書くとInternal Server Error になるんです。 XML::XPath; など ほかのモジュールは、http://theoryx5.uwinnipeg.ca/ppms/ からダウンロードして use lib ' で使えるようにしたのですが、 strictだけ みつからないので 動作確認して使えないんです。 strict.pmを配布しているサイトをご存じでしたら 教えてください。

    • ベストアンサー
    • Perl
  • 'use strict'を追加でエラーになる

    ここのサイトのJSについてです。 うまく動くのですが 'use strict';の{}でくくって記述し直すと動いてくれなくなります。 どこかJSの記述で古い部分があるのでしょうか? 原因がわかり、すっきりしたいと思っています! https://techacademy.jp/magazine/21069

  • perl use strict; と ファイルハンドルについて

    perl use strict; を使うと、単純なエラーが防げると認識していますが、下記スクリプトでは役に立たなかったようで、このエラーを探すのに苦労しました。 他にも、どこかのサブルーチンでsortを使ったスクリプト中で、$aを使った時もおかしな挙動をしたことがあります。 use strict;の使い方は正しいと思うのですが、エラーを出してはくれないものでしょうか? また、このようなエラーをしないために安全なプログラムの書き方はありますか? use strict; open(F,"<file.txt"); while(<F>){ &abc($_); } close(F); sub abc(){ my $str = shift @_; open(F,">>file2.txt"); print F $str; close(F); }

    • ベストアンサー
    • Perl
  • strict refs in use

    Perl cgiを作っているものです。 Can't use string ("from_auto") as a HASH ref while "strict refs" in use at common.cgi line 43. というエラーがでました。line 43にはstrict refsに関係のありそうな記述はありません。 common.cgiの中に、連想配列の参照渡しを追加したとたん、上記のエラーが出るようになりました。解決策をご指導ください。

    • ベストアンサー
    • Perl
  • Perlで use strict して our変数

    Perl 初心者です。初めて質問します。 test_sub.pl で宣言した変数を test_main.pl から参照したくて悩んでいます。 環境 : WindowsXP / ActivePerl 5.14.2 -------------------- * test_sub.pl -------------------- #!/usr/bin/perl use strict; our $hoge = 'HOGE'; 1; -------------------- * test_main.pl -------------------- #!/usr/bin/perl use strict; require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $hoge; -------------------- これを実行すると、 Global symbol "$hoge" requires explicit package name at C:/public_html/cgi-bin/test_main.pl line 7.\r というエラーが出ます。 require する前に、test_main.pl のほうで our($hoge); と宣言したり 参照する際に print $main::hoge; とパッケージを指定したりすればいけるのですが、 これらをしないとできないものなのでしょうか。 use strict; を書かなければ最初のソースでも動くのですが use strict は書きたい… 継承のようなことをしたいのです。 ちなみに以下試してみたソースです。 -------------------- * test_main.pl -------------------- #!/usr/bin/perl ######################################## # NG use strict; require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $hoge; ######################################## # OK our変数を宣言しておくといける =pod use strict; our ($hoge); require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $hoge; =cut ######################################## # OK 参照する際にパッケージ名を指定すればいける =pod use strict; require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $main::hoge; =cut ######################################## ######################################## # NG =pod use strict; use base qw(test_sub); print "Content-type: text/html\n\n"; print $hoge; =cut ######################################## -------------------- * test_sub.pm -------------------- #!/usr/bin/perl package test_sub; use strict; our $hoge = 'HOGE'; 1; -------------------- NG パタンはどちらも Global symbol "$hoge" requires explicit package name のエラーとなります。 もしご存じの方がいらっしゃいましたら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • use strict;

    Global symbol "@exec_test_list" requires explicit package name at ./ctest.pl line 384. Global symbol "@exec_test_no" requires explicit package name at ./ctest.pl line 384. Global symbol "@protocol_list" requires explicit package name at ./ctest.pl line 397. Global symbol "@protocol_list" requires explicit package name at ./ctest.pl line 406. Global symbol "$name" requires explicit package name at ./ctest.pl line 413. use strict;を書くと以上のようなエラーメッセージが 出力されます。どうしたら、以上のようなエラーを 回避できるでしょうか?教えてください。

    • ベストアンサー
    • Perl