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というモジュールを紹介しました. こういうのを書いているととても「ラーメン食いてぇ」ってなってきますね.
さぁ, 明日は誰が書いてくれるんでしょうか ?