今回のテーマは「オブジェクトとパッケージ」でした。
一応、概念は別の言語で理解しているつもりなのでPerlでもいけるだろう、と思いましたがPerlのオブジェクト指向よくわからない/(^o^)\
あと、Acme全集2012を入手しました。
メモ
Perlのオブジェクト指向で気になったところをメモると- use parent 'Animal'; で継承
- use parent ('Cat', 'Bird'); 多重継承可能!
- lib/ 配下に置くのが主流のよう
- ファイルの最後には「1;」を書く(trueな値を書く)
- Mouse使うのもあり。
- Mixin的な事をしたい場合、Exporterを使う
- 基本構文ではない
- URI::httpは演算子のオーバーロードをしている
- なるほど、use overload ('""' => sub { ${$_[0]} },)で文字列として評価しようとした時の動きを変えている様子。
- ${$_[0]} } の意味がよくわからない…オブジェクト自身($_[0])を${}で囲んでいる。するとなぜか値が返ってくる
- 確かに「warn Dumper ${ $res->{link} };」の様に${}で囲めばうまくいく!
- 多分blessの値を返してる。
- インスタンス変数のイメージでOK?
- ${$_[0]} } は、オブジェクト自体をデリファレンスしているということ??
- 色々試してみました
@ytnobodyさんのgithubからLTで使っていたサンプルコード入手して、ゴニョゴニョ触ってみました。blessでインスタンスを作るなどして、なんとなくちょっと分かってきた気がしてます。
ググった
- my $class = shift; で何をshiftしているのか分からなかったけど、
$_;@_;が省略されているっぽい。 - 【追記】@toku_bass さんに$_ではなく@_が省略されていることを教えてもらいました!
- $オブジェクト->サブルーチン(); で呼ぶときは第一引数にはオブジェクト自身が入る。
なるほど。
ビギナーズセッション
@__papix__さんの発表pappixさん、次は別のpmにも行かれるようで行動力に驚きました。
発表内容
オブジェクトやパッケージの概念を理解するのに役だったモジュールは?⇛ @ytnbodyさんの回答
・以下のピンク色のページが役に立った
http://www.rwds.net/kuroita/program/Perl_oo.html
・LWP::UserAgentを操作してオブジェクトの操作に慣れるのもオススメ
懇親会
ハワイ料理でした。