Acme::Jiro - ラーメン二郎ジェネレータ in Perl
2011-12-05
こんにちわ. けいおんの映画を未だ見れていない syohexです. 今週の出張が終わったらぜひ映画館に行きたいですね.
はじめに
Acme::Jiroは の Perl版です. ラーメン二郎というお店はメニューを頼むときに呪文を唱えないといけないそうです. もたもたしていると怒られるとかなんとかって話も出ているんで, しっかり準備していきたいですよね.
使い方
各パラメータをコンストラクタに与えるだけです. コンストラクタのキーは '麺', '固さ', '野菜', '背脂', 'タレ', 'にんにく'です.
#!perl use strict; use warnings; use utf8; use Acme::Jiro; binmode STDOUT, ":utf8"; my $jiro = Acme::Jiro->new( '野菜' => '極めて多め', '背脂' => '普通', 'タレ' => '多め', 'にんにく' => '多め', ); print $jiro->magic, "\n"; # カラメニンニクマシチョモランマ
私を含めそもそもどのパラメータにどんな値をいいかわからないので, そういう方のために promptメソッドがあります. こうすると各パラメータについて選択肢が表示されます.
#!perl use strict; use warnings; use Acme::Jiro; binmode STDOUT, ":utf8"; my $jiro = Acme::Jiro->new(); $jiro->prompt; print $jiro->magic, "\n";
以下のようなプログラムを書いて, 呪文をみんなで当て合いっこするのも楽しいかもしれません.
#!perl use strict; use warnings; use utf8; use Acme::Jiro; use List::Util qw(shuffle); binmode STDOUT, ":utf8"; my @params = qw/麺 固さ 野菜 背脂 タレ にんにく/; for my $i (1..100) { my %parameter; for my $key (@params) { my @volumes = Acme::Jiro->get_valid_param($key); $parameter{$key} = (shuffle @volumes)[0]; } print " $_:$parameter{$_}" for @params; print "\n"; sleep 2; my $jiro = Acme::Jiro->new(%parameter); print " ==> ", $jiro->magic, "\n\n"; }
おわりに
Acme::Jiroというモジュールを紹介しました. こういうのを書いているととても「ラーメン食いてぇ」ってなってきますね.
さぁ, 明日は誰が書いてくれるんでしょうか ?