ハッシュが破棄されたことがわかったら、それを見つけたと思いますか?このように:あなたは不思議に思った場合は
$self = bless({
'anotherfield' => 'something else',
'databas' => '...',
'afield' => 'something'
}, 'MyClass');
「?!?!どのように 『データベース』 来設定されていません」と、あなたはこれをダンプし、あなたはそれが役立つだろうと思いますか? "ああ、それは 'database'ではなく 'databas'を割り当てました!"その後Data::Dumper
は、最小限のPerlのデバッグツールもちろん
use Data::Dumper;
...
# Why isn't database assigned?!?!
say Data::Dumper->Dump([ $self ], [ '$self' ]);
、Data::Dumper
ツールの最も便利なフォームがSmart:Comments
です。
出力
use Smart::Comments;
...
### $self
:
### $self: bless({
### afield => 'something',
### anotherfield => 'something else',
### databas => '...'
### }, 'MyClass')
をそれはムースとして予防ツールとしてではないのですが、それはしかし、時間を保存します。私はCPANオブジェクトの大惨事を吐き出しながら、Perlのトリックとプラクティスを学ぶのにも役立つと思います。基本的な構造を知っているときは、CPANモジュールで検索するものがあります。
私が言ったように、それは時間(多くの場合、十分な場合があります)を追跡するという問題を解決します。
感謝を。しかしこれはあまりにも多い。私はすべてのvarの前に定義する必要があります。自動チェックに役立つモジュールはありますか? – everbox
あなたの '$ self - > {databas}'構文は、新しい鍵の作成方法です。これでエラーが発生した場合、モジュールは最初にそのキーをどのように作成しますか? –
期待されるすべてのハッシュ値がサブ開始時にあることを確認し、欠落している場合は停止することができます。一度に多数をチェックすることができ、変数ごとに1行は必要ありません。 –