[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

ブックマーク / bayashi.net (3)

  • Perl の関数をオーバーライドする

    一時的なオーバーライド (Foo.pm) package Foo; use strict; use warnings; sub bar { my $baz = shift; $baz * 2; } 1; (hoge.pl) #!/usr/bin/perl use strict; use warnings; use Perl6::Say; use Foo; say Foo::bar(3); # 6 { no warnings 'redefine'; local *Foo::bar = sub { my $baz = shift; $baz ** 2; }; say Foo::bar(3); # 9 } say Foo::bar(3); # 6 関数を、local で一時的に上書きする。 no warnings 'redefine'; は関数の再定義を許してね、という宣言。 no warnin

    Perl の関数をオーバーライドする
    kiyo_hiko
    kiyo_hiko 2023/06/26
    既存の関数を乗っ取るとき「*Package::method = sub { "code ref." }」するって話。更に自分の場合、特定のときにオーバライド前の関数呼びたくなった→試した結果これは先に「*Backup::method = \&Package::method」でできることがわかった
  • エラーメッセージは 2W1H がいいんじゃないか

    良くあるダメなエラーメッセージ エラーが起きたときは、以下のようにエラーメッセージをどこかしらに出力すると思います。 $c->log->error('something wrong!'); ただ、このエラーメッセージって、実際に発生したときには意味がわからないことが多いのです。 $c->log->error('error!'); 気でこういう「error!」とだけ吐くメッセージだと、エラーが起きたことしか伝わってきません。程度の差はあれ意味のわからないエラーメッセージはこの世にあふれているかと思います。 機械的なエラー情報 そういうわけで、たいていは Exception クラスや Logger クラスで多くの補助が受けられるようになっていると思います。 発生時刻 発生場所 stack trace 変数の状態 ただ、このような機械的な情報だけだと、結局、運用上は対応が難しい場面ってのが多か

    エラーメッセージは 2W1H がいいんじゃないか
  • Perl コードのメトリクス測定

    メトリクス解析ツール Perl コードのメトリクス解析には Perl::Metrics::Lite やコマンドラインツールの App::plmetrics を使用します。 plmetrics App::plmetrics モジュールにはコマンドラインでメトリクス解析を簡単に行う plmetrics が含まれています。 $ plmetrics --module Encode /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Encode.pm .---------------------------------------------------. | | avg | max | min | range | sum | methods | +-------+-------+-----+-----+-------+-----+---------+ | c

    Perl コードのメトリクス測定
    kiyo_hiko
    kiyo_hiko 2012/06/05
    興味深い
  • 1