imo758回答ポイント 80ptウォッチ

PerlのBenchmarkモジュールへプライベート変数の内容を手際よく渡せないでしょうか。


例えば
Windows-XP-prompt>perl -MBenchmark -e "{my $m=1;timethis(10,'&f($m,2)');}sub f{print join ' ',@_[0,1],'';}"
において、Benchmark::timethisなどに渡すコードはプライベート変数を覗くことができないようなので、ベンチマーク中に出力ファイルハンドルへ吐きだされる文字列が 2 2 2 ... となるのは理解できます。

プライベート変数の内容を使うコードをテストしたい場合は、
Windows-XP-prompt>perl -MBenchmark -e "{my $m=1;our @o=($m,2);timethis(10,'&f(@o)');}sub f{print join ' ',@_[0,1],'';}"
のように、timethisを呼び出す直前にour宣言などしたグローバル変数を介してコードに内容を渡すのが、一番考えられる方法でしょうか。

しかしこれは正直、手際が悪いと感じるので、もっと手際のいい方法を欲しています。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

まだオープンされてない回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-05-06 07:29:48
終了日時
2010-05-12 08:37:11
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

グローバル変数16Perl1679ベンチマーク68Windows5693XP2318モジュール927変数1063

人気の質問

メニュー

PC版