AcmeモジュールをCPANにあげてみた
先日Perl Beginnersに参加したときにLTで話した
Acme::ReplicaというモジュールをCPANにアップしました。
Acme::Replicaについて
精巧に作られた食品サンプルのように、見た目は本物そっくりですが 実際には食べれない値を返すモジュールです。
暇なときにでも使ってみてください。
use 5.010; use Acme::Replica; my $rep = replica_of( 'sasakure' ); if ( $rep eq 'sasakure' ) { say 'ここは表示されない'; } else { say 'ここは表示される'; say $rep; # sasakure }
ifの評価ではfalseになるのに、sasakureってちゃんと表示される。
どういう事かというと
表示しても字としては出てこないけど、実際はバイト単位では余計なデータが付けているから。
ハッシュを渡すとキーに余計なゴミバイトが付くようになってます。
use 5.010; use Acme::Replica; use Data::Dumper; my %rep = replica_of( { japanese => 'sushi', amelican => 'hotdog', } ); say Dumper ¥%rep; # $var1 = { # japanese => 'sushi', # american => 'hotdog', # }; say $replica{japanese}; # エラーになる $replica{japanese} = 'sukiyaki'; say Dumper ¥%rep; # $var1 = { # japanese => 'sushi', # japanese => 'sukiyaki', # american => 'hotdog', # }; say $replica{japanese}; # sukiyaki
あくまでReplica(模造品)なので同じようで、違うハッシュが返ってきています。
食品サンプルが並んだハッシュに自分でスキヤキを入れたら、
スキヤキだけはちゃんと(食べれ|取れ)ます。
記念すべき僕の初Acmeモジュール :-P
Ver0.02ではMakefile.pmに初めてinc::Module::Installを使ってみました。
配列やハッシュを引数で渡すとき、使い易さでいったら、そのままブッコむ!
って思ったんですが、
後で引数を増やしたい時とか困るな〜って思ってリファレンス渡しにしました。
こういうAcmeモジュールほど、気軽にアドバイスいただけちゃったり
Pull Reqもらえるんじゃないかとwktkしてます。