読者です 読者をやめる 読者になる 読者になる

Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

Perl鍋#6に参加して、Mouseを使ったオブジェクト指向の書き方とグランフロント大阪を満喫してきた

Perl

Perl鍋に参加しました

大阪でPerlをもくもくと書いて発表したり教え合う勉強会、Perl鍋#6に参加してきました。 この勉強会の主催者は、Perl入学式in大阪で講師もされている @nqounet さんです。 勉強会の位置づけは、Perl入学式でひと通り基礎を学んだその次のステップ、「自ら何かを作ってみよう」という趣旨だそうです。

会場はグランフロントの中にあるKnowledge Salonという会員制スペース、広くて綺麗で、飲食も可能な最高の空間でした。

最近はC言語Rubyを主に勉強していたので、Perlを書くのは久しぶりでした。 何を作るか、は始まってから考えようと

Perl CPANモジュールガイド

Perl CPANモジュールガイド

を持参して行きました。 主催の @nqounet オブジェクト指向の設計が難しい云々といった雑談から、Perlで書くならMouseというモジュールが良いという話になり、PerlでMouseを使って基本的な書き方を試してみました。

書いた(試した)コード

Mouseは、

package Hoge;
use Mouse;
1;

と書くだけで、Hogeクラスが定義できて、クラスの中で

has 'bar'=>(); 

と書くとプロパティ(インスタンス変数)、サブルーチンを書くことでメソッドが定義出来てしまいます。 今までは、Perlオブジェクト指向といえば、blessを使って・・・と結構理解するまで難しかったイメージでしたが(過去のブログ記事)Mouseモジュールを使えば、簡単に実現出来ますね。とても簡単に。

継承だとかメソットのオーバーライド等を例にして、Perl入学式スタッフのクラスを定義し自己紹介をするコードを書いてみました。

github.com

Staff が大元のクラス、そこから継承させた派生クラスがPapixクラス、Azumaクラス、そしてPapixクラスから更に継承させたクラスがBoolfoolクラスです。ごく短いコードなので、読めばすぐに雰囲気がつかめるかと思います。

staff.pl

ファイルを実行すると、各クラスのインスタンスが自己紹介をします。 f:id:tomcha0079:20150613003230p:plain

まとめ

今回参加して、初めてMouseのモジュールを使った事も勉強になりましたが、 @nqounet さんが作ったSlackのウェブフックも解説付きでコードを見せてもらい、こちらも新しい知見が得られました。evalを使ったエラートラップのイディオムとか、なるほどなーって感じでした。 また、普段書く機会が無いので、久しぶりにPerlオンリーの書く機会が出来たので良かったです。 普段、Perl書く機会が無いんだけどなーって方にオススメです。

大阪では、Perl入学式の次のステップとしての勉強会、Perl鍋なにわPerlがあります。今年も開催していきますので、皆さん是非ご参加下さい。