MooseX::Getopt には慣れてきたので、次はコマンドラインオプションだけじゃなくて設定ファイルの読み込みもやりたくなった。何かないかとおもって、何をどう調べたか忘れたけど http://mt.endeworks.jp/d-6/2009/10/twitter-on-hamaki.html をみて --configfile に何かありそうだと当たりをつけて Hamaki のソースを読んだら、 MooseX::SimpleConfig というのを使ってた。 ので自分でも使ってみた。 MooseX::Getopt と組み合わせると便利みたい(というかその組み合わせで使うように作られてるのかも)。改めて moosex config でぐぐったら http://mt.endeworks.jp/d-6/2008/07/moosex-configfromfile.html という記事も見つかった
MooseのメインメンテナであるDave Rolsky氏が、Mooseマニュアルを執筆する際、The Perl Foundationから資金を受けるため、その申請書の内容がTPFのホームページで公開されましたが、私はそれを読んで「是非とも氏に書いていただきたい」と思い、絶対に申請を認可させるのだという強い信念(又は勝手な思い込み)で、下手な英語で推薦コメントを書いたことがありました。他のプロジェクトの申請もあったのですが、それらには目もくれませんでした。そのような思い出があるので、Moose::Manualには他人以上に思い入れがあります。そして、内容的にも、さすがRolsky氏、ツボを押さえていて、Moose入門の必読書だと思います。 しかし、世の中にはいろいろな人がいて、Moose::Manualでも敷居が高いと感じるようです。入門の入門があればなぁ、と思っていたところへ、Jan Ku
Moose::RoleはJavaのInterfaceと似たような物だと思ってたんですが、大きな誤解でした。 モダンPerlの世界へようこそを読んで、Moose::RoleはTraits: Composable Units of Behaviorの概念の実装らしいことがわかったので、この論文を読んでみました。*1。非常に面白い内容でした。P.12 の a) と b) を見るだけでも、この概念の面白さが伝わるんじゃないかと。要は、指定した振る舞い(requires)から新しい振る舞い(provides)を作るものが、Traitsってことです。(ただし、ここで言う振る舞いにはアクセサを含みます。) 誤解していたこと Moose::RoleをTraitsとして見なすとすれば、JavaのInterfaceの性質である以下の2点は誤解です*2。 Moose::Roleは、単なるインタフェース(API)
多重継承しないほうがよい場合 前回は多重継承を利用してクラスを拡張するときにありがちな問題と、そのひとつの解決策を見てきましたが、クラスにいくつかのメソッドを追加したいだけであれば、むしろ継承を利用しないほうがふさわしい場合もあります。 たとえば「コウモリ」というクラスを実装するとき、「乳を出す」というメソッドのために「ほ乳類」というクラスを、「空を飛ぶ」というメソッドのために「鳥類」というクラスを継承するのは――たしかにそれで当座の問題は解決するかもしれませんが――違和感が残ります。 use strict; use warnings; use Test::More tests => 4; package Mammal; sub new { bless {}, shift; } sub produce_milk { print "I can produce milk.\n"; } pa
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
Perl界隈の期待の新刊「モダンPerl入門」。読んじゃいました。 モダンPerl入門 (CodeZine BOOKS) 作者: 牧大輔出版社/メーカー: 翔泳社発売日: 2009/02/10メディア: 大型本購入: 23人 クリック: 465回この商品を含むブログ (112件) を見る Perl基礎の表層を一通りなめたものの、初心者からなかなか抜け出せない僕のような人のためにかかれた本ですね。感動しました。読んで満足してこのまま終わってしまいそうだったので、書いてある内容を実践してみてようと思います。 注意 調べながら書きながらなので間違っている箇所もあるかもです。ツッコミお待ちしております。 Moose と Class::MOP の機能をおそらく混同してます。すいません。 Mooooooose モダンPerl入門は "Class::Accessor::Fast と Moose" という
http://search.cpan.org/~stevan/Moose-0.40/lib/Moose.pm 何かと話題のMooseかじりかけです。そもそも何?から入ってみました。自分用。 A postmodern object system for Perl 5という事でperl5OOを今風に書けるよ!って事でしょうかね。 とりあえず書いた 例によって武藤敬治クラス。継承(extends)とかは今回手を出してません。 package Muto; use Moose; use DateTime; has 'height' => (is => 'ro', isa => 'Int', default => 188); has 'weight' => (is => 'ro', isa => 'Int', default => 115); has 'birthday' => ( is => 'ro
次は Recipe5 也。 ソース package HTML::Location; use URI; sub __as_URI { my $self = shift; return URI->new( $self->uri ); } package Request; use Moose; use Moose::Util::TypeConstraints; use HTTP::Headers (); use Params::Coerce (); use URI (); subtype 'Header' => as 'Object' => where { $_->isa('HTTP::Headers') }; coerce 'Header' => from 'ArrayRef' => via { HTTP::Headers->new( @{$_} ) } => from 'HashRef' =
Moose is a postmodern object system for Perl 5 that takes the tedium out of writing object-oriented Perl. It borrows all the best features from Perl 6, CLOS (LISP), Smalltalk, Java, BETA, OCaml, Ruby and more, while still keeping true to its Perl 5 roots. Moose is 100% production ready and in heavy use in a number of systems and growing every day. Try it today! Download CPAN Moose Task::Moose - A
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
モジュールがMoose依存してた。別れたい… - Unknown::Programming id:tokuhiromさんにベンチうp頼まれたんだけども超個人的なBenchmarkコードなのでそのままCodeReposにあげれるような代物でもないということもあり取り急ぎエントリとしてあげておきますので自由に変更しちゃってください。 #!/usr/local/bin/perl -w use strict; use warnings; package MooseBuild; use Moose; has userid => ( is => 'rw', ); has agent => ( is => 'rw', required => 1, ); sub BUILD { my $self = shift; $self->userid(90); $self->userid($self->agent-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く