- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:警告を消したい)
モジュールのロード方法で警告を消す方法
このQ&Aのポイント
- モジュールを必要な時のみロードするためにuseではなくrequireを使用することはよくありますが、ワーニングをオンにしている場合、変数を参照する箇所で名前が一度しか使用されていない可能性がある警告が表示されます。
- 警告を消すためには、use文を使ってモジュールをロードするか、use strictプラグマを使用して変数を宣言することが推奨されます。
- 警告を無視する場合は、use warningsプラグマを使用することで一部の警告を非表示にすることができます。ただし、警告が発生する原因を把握し修正することが望ましいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>この箇所(or変数)だけ回避できる方法があれば これで一箇所だけ回避できませんか Perl Hacksあたりに (そこではstrictの回避だった気がしますが)で こんなのがあったと思います. #動かしてないので駄目かもしれませんが,ご参考まで. my $dbh; { no warnings 'once'; $dbh = DBI->connect(~) or die $DBI::errstr; }
その他の回答 (1)
- kabaokaba
- ベストアンサー率51% (724/1416)
回答No.1
no warning 'once'; でいきませんか? perldoc perllexwarn でwarningの階層構造を参照してください. もっとも・・・すなおに use するのが一番だと思いますが. 個人的には use strict; use warning 'FATAL'; くらいで通るように心がけたい.
質問者
お礼
早速ありがとうございます。 うーんやっぱりそうするしかないんですかね・・・ できれば、警告の機能自体は役立つので生かしておいて、この箇所(or変数)だけ回避できる方法があれば一番なんですが。 varsとかあるいは無意味に変数名だけを書いて2回参照するようにしたりしてるんですが、どうも良い方法とは思えなくて・・
お礼
御指示通りで解決できました、ありがとうございます。 プラグマをブロックでスコープさせることができるということ自体を、知りませんでした・・・。お恥ずかしい限りで よくみたらperllexwarnにもperlfaqにもしっかり書いてありましたね・・。 重ね重ね、ありがとうございました。