■2009-11-21
* [Perl] Perl Casual Talks#1に参加しました
Perl Casual Talksに行ってきました。どの方のお話も面白くとても楽しかったです。皆様お疲れ様でした&ありがとうございます。今後は一層「より積極的」になることを目指します。
私もPerl同人誌の話をしましたが、時間切れで残り半分出来ませんでしたので、ここでちょっと吐き出しておきます。
冬コミの同人誌:『逆引きAcme大全』
12月31日(木)西よ-29b
内容の抜粋(仮)
- use strictしてないファイルを削除したい
- ↑のようなことをするAcmeモジュールを削除したい
- 悪いお手本を反面教師にしたい
- useしてもモジュールを利用できなくしたい
- Perlがインストールされているかどうか知りたい
- コメントをモールス信号にしたい
- Coroでスレッドが切り替わったら「うわぁ…べんぞうさんの中…すごくあったかいナリぃ… 」と表示させたい
例えばこういう時に役に立つ!
Canvasで遊ぶのソースコード。これをPerlでもやってみたいと思い立ったとき。すなわち「Perlコードのコメント行に全然関係ない文章を入れたい」。→『逆引き』で「コードのコメント行をモールス信号にしたい」発見!
→Acme::MorseComments←コレ。 あとはこのモジュールを参考にしてつくるだけ。(ここでコメント行とは#で始まるやつだけでpodセクションは含めません。)
package YourModule; use strict; use base qw( Acme::CommentChanger ); sub handler_token { return sub { my ( $self, $token ) = @_; # $token is PPI::Token::Comment my $content = $token->content; # # .... # $token->set_content( $content ); } } # package main; my $changer = YourModule->new; my $code = 'your source code'; my $changed_code = $changer->change_code( $code );
PPI::Token::Commentを受け取るサブルーチンを返すハンドラを用意するだけで簡単にコメントを弄れます。Acme::MorseCommentsからは遠くに行ってしまったというか、汎用性高めただけですが……
Acme::CommentTellerを同梱していて、こちらはコメント行を任意のテキストに置き換えます。eg下にcomment2story
というのがあるので
comment2story sourcefile anotherfile > output
とやると、コメント行をいい感じでanotherfileの内容に置き換えてくれるかもしれません。
あと、Acme::BleachCommentも同梱していて、こちらはAcme::Bleachのリスペクト。useして実行するとコメント行を全て取り除いてくれるが、プログラムは以前と変わらず動く……あたりまえだ。
で、Acmeモジュールについていうと
- モジュール名(とDESCRIPTION)をみて楽しむ
- 実行して喜ぶ(本当にやると危険なのもある!)
- ソースを見て驚く(たまにトリッキーなのや勉強になるものが)
- 自分もAcmeってみる(←こういう所から始めるのも楽し)
な感じで、結構Perl好きになるきっかけのひとつっぽくて良いなあとか、自分がPerl同人誌をつくるのは
- 笑ってもらいたい
- 手にとって触れる形にしたい
- リアルで手渡したい
などですよーとか、
あと刺身☆ブーメランさんがここで書かれてるように、perl-casual.orgやperl-mongers.orgなどのコミュニティを一種のPerl同人と捉えるのは、素敵だなあと思ったりしたことを話そうとしたのですが、こりゃ詰め込みすぎ。
最後にperl-casualを立ち上げたyusukebeさんに感謝。
_ MIT [はじめまして、コメント失礼します。 こちらの旧サイトで配布なさっているWSPのことなのですが、もう質問などは受け付..]
_ まかまか [お返事遅れてすいません。 確かに放置状態ではありますが、対応できる範囲でお答えします。 長文になるようでしたらg..]
_ MIT [お返事ありがとうございます! お忙しい中そう言っていただけてありがたいです。もちろん待たせていただきますのでお願い..]