トップ 最新 追記

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|07|10|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2009-11-21

* [Perl] Perl Casual Talks#1に参加しましたB!

 Perl Casual Talksに行ってきました。どの方のお話も面白くとても楽しかったです。皆様お疲れ様でした&ありがとうございます。今後は一層「より積極的」になることを目指します。
 私もPerl同人誌の話をしましたが、時間切れで残り半分出来ませんでしたので、ここでちょっと吐き出しておきます。

冬コミの同人誌:『逆引きAcme大全』
12月31日(木)西よ-29b

内容の抜粋(仮)

  • use strictしてないファイルを削除したい
  • ↑のようなことをするAcmeモジュールを削除したい
  • 悪いお手本を反面教師にしたい
  • useしてもモジュールを利用できなくしたい
  • Perlがインストールされているかどうか知りたい
  • コメントをモールス信号にしたい
  • Coroでスレッドが切り替わったら「うわぁ…べんぞうさんの中…すごくあったかいナリぃ… 」と表示させたい

例えばこういう時に役に立つ!
Canvasで遊ぶのソースコード。これをPerlでもやってみたいと思い立ったとき。すなわち「Perlコードのコメント行に全然関係ない文章を入れたい」。→『逆引き』で「コードのコメント行をモールス信号にしたい」発見!
 →Acme::MorseComments←コレ。 あとはこのモジュールを参考にしてつくるだけ。(ここでコメント行とは#で始まるやつだけでpodセクションは含めません。)

結果:Acme::CommentChanger

 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さんに感謝。

本日のツッコミ(全3件) [ツッコミを入れる]

_ MIT [はじめまして、コメント失礼します。 こちらの旧サイトで配布なさっているWSPのことなのですが、もう質問などは受け付..]

_ まかまか [お返事遅れてすいません。 確かに放置状態ではありますが、対応できる範囲でお答えします。 長文になるようでしたらg..]

_ MIT [お返事ありがとうございます! お忙しい中そう言っていただけてありがたいです。もちろん待たせていただきますのでお願い..]

[]