Perlで変数に特定の値があることを確認するにはどうすればよいですか? スクリプトの実行を停止して、その変数の一部を検索するコマンドはありますか?
挿入の Pythonic プラクティスを使用できるかどうか疑問に思います。
assert 0, (foo, bar)
デバッガなしでスクリプトをデバッグするには?
Perlで変数に特定の値があることを確認するにはどうすればよいですか? スクリプトの実行を停止して、その変数の一部を検索するコマンドはありますか?
挿入の Pythonic プラクティスを使用できるかどうか疑問に思います。
assert 0, (foo, bar)
デバッガなしでスクリプトをデバッグするには?
CPAN をすばやく検索すると、Carp::Assertが提案されます。
Carp::Assertを参照してください:
use Carp::Assert; $next_sunrise_time = sunrise(); # Assert that the sun must rise in the next 24 hours. assert(($next_sunrise_time - time) < 24*60*60) if DEBUG; # Assert that your customer's primary credit card is active affirm { my @cards = @{$customer->credit_cards}; $cards[0]->is_active; };
Smart::コメントはいいね。
PerlMonksには、高速なアサート メソッドを導入するスクリプトがあります。
Perl は解釈され、インライン チェックはパフォーマンスに影響するため、速度は重要です (単純な C マクロなどとは異なります)。
これらが直接使用できるかどうかはわかりません。
Ok!これは私が探していたものです - PDF 警告: Test-Tutorial.pdf。は、Test::HarnessPerl モジュール テストの記述に使用されます。
if ( $next_sunrise_time > 24*60*60 ) { warn( "assertion failed" ); } # Assert that the sun must rise in the next 24 hours.
Carp::Assertに必要な Perl 5.9 にアクセスできない場合は、これを行うことができます。
$var_to_check =~ /sometest/ or die "bad variable!";
私は自分のコードでこのようなものをスローする傾向があり、後で検索と置換を使用してそれらを取り除きます (製品コードで)。
また、' eval ' を使用してコードのセクションを実行し、エラーをキャプチャしたり、例外処理機能を作成したりすることができます。値が 0 ではないことを主張している場合、おそらく例外をスローして、そのケースを特別な方法で処理する必要がありますか?