タグ

2014年1月27日のブックマーク (3件)

  • lib/Gearman/Objects.pm - metacpan.org

    ken39arg
    ken39arg 2014/01/27
    use fields
  • YappoLogs: bradとmyとuse fieldsとPseudo-hashesとHash::Utilと

    bradとmyとuse fieldsとPseudo-hashesとHash::Utilと bradプロダクトではuse fieldsが多用されています。そして、 my ClassName $var;のような変数宣言が多用されています。 perldoc -f myしてみるとuse fieldsで使うみたいな事が書いてありました。 use fieldsってのは package Jitensya; use strict; use warnings; use fields qw/(sound); sub new { my $proto = shift; my $self = ref $proto ? $proto : fields::new($proto); $self; } 1; のようなコードがあるとして use strict; use warnings; use Jitensya; my $

    ken39arg
    ken39arg 2014/01/27
    fields
  • Re: use fields; と my TYPE EXPR; - Islands in the byte stream (legacy)

    これ、コンパイル時チェックというのはあってますが、実効速度が遅いというのは誤解です。 use fields; と my TYPE EXPR; - 日々量産 fieldsを使うと、フィールドに不正な代入があったら、"コンパイル時"にはじくことが出来る。 ハッシュキーをよくtypoする人にはおすすめだが、実行速度は遅い。 typed myはコンパイル時にしか効果を及ぼさないので実行速度へのペナルティはありません*1。件のベンチマークでスコアが出ないのでは、fields::new()が遅いからですね。fields::new()の意味は、5.10.0より前のバージョンとの互換性のためと、実行時チェックのためのHash::Util::lock_keys()の適用です。5.10.0以上限定で実行時チェックが不要なら使う必要はありません。 コンパイル時チェックというのは次のようなことです。 packag

    Re: use fields; と my TYPE EXPR; - Islands in the byte stream (legacy)
    ken39arg
    ken39arg 2014/01/27
    fields