■2013-01-11
* [近況] 冬コミ(C83)の報告
いささか遅れましたが、明けましておめでとうございます。……昨年末の冬コミの報告をしようと思ったけど、よく考えたら冬コミの告知やってなかったですね。
増刷した『Acme大全2012』はおかげさまで完売しました。ありがとうございます。新刊(っていうのかわかりませんが)の「新春初笑いPerlすごろく」もほぼ全て頒布できました。
(クリックすると拡大)
えーと、YAPC::Asiaで発表した「やっぱしぃYAPC」はどうした? という声もあるかもしれませんが、諸般の事情で出せませんでした。ごめんなさい。その代わりに突貫でつくったのがこの「新春初笑いPerlすごろく」になります。最初にゴールのマスに入ってPerl Mongerになった人が勝ちというシンプルなゲームです。お昼休みの10分20分で終わらせられるお手軽ゲームです。途中ミッションカードを引いて、その条件を達成しないとダメなのですが、これはボードゲーム版「ドルアーガの塔」のリスペクトでございます。あちらは女神イシターが勝利条件を提示しますが、こちらは怪僧様ががが。
あと、Fukuoka.pmを間違えてHukuoka.pmとしてしまいました。Fukuoka.pmの皆様ごめんなさい! 改訂版が出るときには必ず直します! そんな感じですが「新春初笑いPerlすごろく」はあと3部ほど残ってます。万一欲しい方がいらっしゃいましたら次回Hachioji.pmにでもお越しくださればお渡しできるかと。それでは今年もどうぞよろしくお願いします。
■2013-01-29
* [近況] Perl Beginners #6でちょっと触れてみたprototypeのこと
先週Perl Beginners #6に行ってきました。前半はJPA会長の牧さんによるQ&Aセッションでした。質疑の中で「モダンPerl入門」以外でXSに触れている本としてAdvanced Perl Programmingが出たのですが、そういえば初めて作ったXSモジュールはその本を読んで試してみたのを思い出しました。懐かしい。
ところで、Q&Aセッションの中でprototypeの話が出てきて、以下のようなときぐらいしか使いどころがないよね、という話になって、そのとき私がもう一つこういうケースが……というので出した例を書いておきます。
use v5.12; sub hoge (&) { ... } hoge { ... };
こちら、ご存知の通り一番目の引数がコードリファレンスの場合はsubを省ける例のアレです。で、次のやつ:
sub fuga (\$) { # $の前に\がつく my ( $v ) = @_; say ref( $v ); # => SCALAR $$v = 2; } my $foo = 1; fuga( $foo ); say $foo; # => 2
スカラー変数を値渡しで渡しているつもりがサブルーチン内部ではリファレンスとして渡されていますね。これは便利……なのか? ちなみにthreads::shared
で使われてます(実際にはXS側からprototype宣言されてますが、threads無効の場合はPerlコードからもダミー用として宣言されます)。