タグ

perlとOOに関するdankogaiのブックマーク (10)

  • perl - Acme::Akashic::Records 0.01 Released : 404 Blog Not Found

    2010年10月03日02:00 カテゴリLightweight Languages perl - Acme::Akashic::Records 0.01 Released アカシックレコードをPerlから読みたいのですがモジュールありますか。 CPANを軽く捜しましたが見当たりません。 - 人力検索はてなアカシックレコードをPerlから読みたいのですがモジュールありますか こちらをお使い下さい。 /lang/perl/Acme-Akashic-Records/trunk - CodeRepos::Share - Trac dankogai's p5-Acme-Akashic-Records at master - GitHub Dan Kogai / Acme-Akashic-Records - search.cpan.org (Coming Soon) アカシック・レコードとは、このよ

    perl - Acme::Akashic::Records 0.01 Released : 404 Blog Not Found
  • perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! : 404 Blog Not Found

    2009年06月21日19:00 カテゴリLightweight Languages perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! リハビリをかねて作りました。 /lang/perl/Class-Builtin/trunk - CodeRepos::Share - Trac dankogai's p5-class-builtin at master - GitHub @CPAN (coming soon)こういうことが出来ます。 #!/usr/bin/perl -l use strict; use warnings; use Class::Builtin; binmode STDOUT, ':utf8'; my $so = OO('小飼弾'); print $so->length; print $so->decode_utf8

    perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! : 404 Blog Not Found
  • perl - Class vs. Closure : 404 Blog Not Found

    2008年07月13日03:30 カテゴリLightweight Languages perl - Class vs. Closure PERL HACKS(日語版) [英語版] うーん、さすがにそれはいいすぎでしょうか。 クロージャの概念をクラスとの対比でわかりやすく説明する。 - サンプルコードによる Perl 入門 ここで気づいてほしいことは、クラスとクロージャは、実は同じものだということです。たしかにオブジェクトの定義から行くと、 404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス それで、オブジェクトとは何か、といえば、「自分が何が出来るのか[コード]を知っているデータ」ということになる。 であり、クロージャー(closure)は「自分が何を持っているか[データ]を知っているコード」なので、等価ではある。実際、 package Class; sub

    perl - Class vs. Closure : 404 Blog Not Found
  • perl - no accessor; # だって遅いんだもん : 404 Blog Not Found

    2008年07月08日15:30 カテゴリLightweight Languages perl - no accessor; # だって遅いんだもん まずはDCONWAY先生のお言葉から。 Perl Best Practices Damian Conway [邦訳:Perlベストプラクティス] Always use fully encapsulated objects. オブジェクトは常にカプセル化して用いよ これはperlの常識というより、OOの常識であるのだけど、これがperlの実装と重なることにより、perlにおいては他の言語よりも作法を破りたくなるインセンティヴが大きいのは否めない。 カプセル化のコストが、あまりに大きいのだ。 以下は、ハッシュ、ハッシュリファレンス、そしてハッシュリファレンスによるオブジェクトの性能をベンチマークしたものだ。最初が初期化、次が accessor と

    perl - no accessor; # だって遅いんだもん : 404 Blog Not Found
    dankogai
    dankogai 2008/07/08
    $obj->accessor のOO税の高さについて
  • perl - There's more than one way to duck-type : 404 Blog Not Found

    2007年06月14日00:15 カテゴリLightweight Languages perl - There's more than one way to duck-type 違う部分もあるので、そこを補足。 rubyco(るびこ)の日記 - Duck Typingは大規模プロジェクトでも大丈夫か? 考えてみたらPerlも同じか。Perlの場合、ContextがDuck Typingの代わりをつとめることが多い。 例えば、文字列を数値として扱う時に、rubyでは "1".to_i + "2".to_i と、明示的にto_iで型変換しなければならないのに対し、Perlでは "1" + "2" が3になる。状況、すなわちcontextに応じて、自動で型変換がなされるからだ。初心者に好かれ、中級者に嫌われ、上級者がやみつきになるのがこのcontext drivenという考えかただ。 なぜ初心者

    perl - There's more than one way to duck-type : 404 Blog Not Found
  • 404 Blog Not Found:perl - POO と goto

    2007年04月24日00:45 カテゴリLightweight Languages perl - POO と goto というわけで、番。 404 Blog Not Found:perl - 万能なnewの書き方 ここからが面白くなるのだが次のEntryへ譲るここに着目していただきたい。 sub init { my $self = shift; $self->{$_} = $default{$_} for keys %default; $self->SUPER::init(); } 初期化に限らず、自分で何かをしたら次のメソッドに振るというのは、OOでは非常によく見られる光景だ。特にpluginなどを使っている場合、それが著しい。 しかし、このコード、次のメソッドに振っているのはいいのだけど、振ってから戻ってくるのだ。メソッド呼び出しも関数呼び出しに過ぎないのだから、当然といえば当然だ

    404 Blog Not Found:perl - POO と goto
  • 404 Blog Not Found:perl - 万能なnewの書き方

    2007年04月23日22:45 カテゴリLightweight Languages perl - 万能なnewの書き方 Perl 5のOOは、慣れてしまうと簡単だ。 継承とか考えずに、普通にクラスを作りたければ、必要なのは以下の二行だけ。 package Klass; sub new { bless {} }; これだけでは何もできないので、とりあえずnameというアクセサーを追加してみる。これだけ。 sub name { my $self = shift; $self->{name} = shift if @_; return $self->{name}; } しかし、上の形式だと、継承をサポートしていない。だから、 package Klass; sub new { bless {} }; package Klass::Sub; our @ISA = qw/Klass/; # new

    404 Blog Not Found:perl - 万能なnewの書き方
  • perl - Inside-out Object : 404 Blog Not Found

    2007年03月11日03:30 カテゴリLightweight Languages perl - Inside-out Object ところが、そのないはずの隠蔽化を強制する仕組みがすでに発見されているのです。 Perl Best Practices Damian Conway [邦訳:Perlベストプラクティス] ビンゴ中西のほげほげ Kansai.pm第8回ミーティングに行ってきました@荷造り中そして、Perlのオブジェクト指向には 隠蔽化を強制する仕組みはない いつか書こうと思っていたけど、ちょうどいい機会なので。 ここでは例として、name,uriという二つのインスタンス変数を持つオブジェクトを実装してみます。 InsideOut.pm { package InsideOut; use strict; use warnings; my %objects; sub new { my

    perl - Inside-out Object : 404 Blog Not Found
  • Perl 5はCOPでOOOP : 404 Blog Not Found

    2007年01月26日06:00 カテゴリLightweight Languages Perl 5はCOPでOOOP オブジェクトっていつからこんなややこしいものになったのか。 sumim’s smalltalking-tos - オブジェクト指向言語として必須な要素とは何か? ケイ パーソナルコンピューティングに係わるものをメッセージングで表現。 ストラウストラップ 抽象データ型(この文脈ではユーザー定義型を指す)を「クラス」を使って定義。 クック データに持たせる「手続き」によるデータ抽象化手法(対極に「抽象データ型」。ただし、この文脈で「抽象データ型」は、データに持たせる「型」による抽象化手法を指す) 私に言わせれば、オブジェクトの定義は 404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス 自分が何が出来るのかを知っているデータ で必要十分であり、そして

    Perl 5はCOPでOOOP : 404 Blog Not Found
  • perl - 継承を使いたいワケ : 404 Blog Not Found

    2006年12月05日09:30 カテゴリLightweight Languages perl - 継承を使いたいワケ おっとっと。というわけで元記事は直したのだけど、あえて継承を使いたかったのにはワケがある。 subtech - Bulknews::Subtech - MobileAgent おしゃれでもないし、そもそもこのコードでは動かない。 無理やりかけばこうなるか。 package MyMobileAgent; my $i; sub new { my $class = shift; my $self = HTTP::MobileAgent->new(@_); my $pkg = __PACKAGE__ . "::". $i++; no strict 'refs'; @{$pkg."::ISA"} = (ref $self, __PACKAGE__); bless $self, $p

    perl - 継承を使いたいワケ : 404 Blog Not Found
  • 1