perl 5 まとめウィキ

die , warn のエラーメッセージをすべて、Carp::longmess にしてくれます。


ためしてみよう。

普通 normal.pl


#!/usr/bin/perl
{
    package Hoge;

    sub hoge {
        die "hgoe hoge hoge";
    }
    ;
}

Hoge->hoge();
結果

hgoe hoge hoge at normal.pl line 8.

Carp::Always版(always.pl)

#!/usr/bin/perl

use Carp::Always;

{
    package Hoge;

    sub hoge {
        die "hgoe hoge hoge";
    }
    ;
}

Hoge->hoge();
結果

hgoe hoge hoge at always.pl line 9
        Hoge::hoge('Hoge') called at always.pl line 14
Carp版(carp.pl)

#!/usr/bin/perl


{
    package Hoge;
    use Carp qw(confess);

    sub hoge {
        confess "hgoe hoge hoge";
    }
    ;
}

Hoge->hoge();
結果

hgoe hoge hoge at carp.pl line 9
        Hoge::hoge('Hoge') called at carp.pl line 14

Always版はつまり confessを呼ばなければだめなのを、die(warn)をcallした際に自動に、同じ挙動にしてくれるということですね。また、スコープがパッケージごとではなく、アプリケーション全体になっています。

まとめ


  • die / warnのエラーメッセージが増える
  • 一度だけ呼べば、そのプロセスすべて適応
  • $SIG{_ _DIE_ _},$SIG{_ _WARN_ _}を触ってるので他でそれを触ってるモジュールがあれば競合する

このページへのコメント

JdcWLe Hey, thanks for the article.Much thanks again. Cool.

0
Posted by tips about seo 2013年12月20日(金) 08:40:29 返信

42QLcH <a href="http://bxhqfhqzamqj.com/">bxhqfhqzamqj</a>, [url=http://xdpcrxaxfodj.com/]xdpcrxaxfodj[/url], [link=http://puytlivhmfsx.com/]puytlivhmfsx[/link], http://bzypieggopkh.com/

0
Posted by cdmpecclvpr 2013年11月15日(金) 07:51:14 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

フリーエリア

どなたでも編集できます