カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

最近気に入って使ってるCPAN Moduleたち

概要: を紹介してみるテスツ


えっと、最近、

という雑記にも書いた通り、

  • PerlへのLove

が復活してきて、モリモリとPerlのコードを書いているので、今日は、

  • 最近僕が気に入って使ってるPerl(CPAN) モジュール

を、ざっくり紹介して行きたいな、と思います。

Moo

基本的にPerlのおけるモダンOOPは、

を発端とした、Moose系のファミリーを使うのがベターだと思いますが、僕はその中でも、

を使ってます。

まあ、以前は、

使ってたんですが、MooMouse よりシンプルで、かつ、 Mouse より Moose 互換性を割り切っているので、その辺り気に入って使ってます。

あとはまあ、型システム用に、

を使ってるって感じですね。

Time::Moment

日付を扱う系のモジュールには、

を使うのがデファクトだと思うんですが、まあ正直 DateTime は複雑で、かつ、ちょっとだけ使う分にはヘヴィーなので、僕は Time::Moment 使ってます。

まあでも、結局のところは単なる新しいもの好きな趣味ですね。はい。

Mojolicious

僕は基本的に、複雑なframeworkに対しては、

アイエエエ! フクザツ! フクザツナンデ!

って成るので、基本的には軽量というか、シンプルな構造のframeworkしか扱えないという困ったちゃんなのですが、PerlにおいてWeb Applicationを書くときには、

を使ってます。まあ正確には Mojolicious::Lite の方ですけど。

で、あと、 Mojolicious::Lite とか使うまでもない簡単なWeb Applicaitonに関しては、

を使って、生のPSGI Application を書いてたりします。基本非推奨ですけれども。

あと、Mojolicous 以前は、

を使ってたと思うんですが、なんか色々と機能が充実してなくて、めんどくさくなって投げたような覚えが有ります。

でもまあ今はもうちょっと進化してるっぽいので、あの当時と比べると、まだ面倒なところは少なくなってるのかな? とは思います。

DBIx::Mint

で、先に、僕は、

を使ってると言いましたが、これと関連して、O/R Mapper には、 Moo ベースでクラスが書ける、

を使ってます。っていうかまあ、正確には、 使おうとしている 、っていうのが正しいですが。

で、この DBIx::Mint は結構構造がシンプルで、かつ Moo ベースのObjectを突っ込んだりするだけで、データベース操作が出来ちゃうし、あと、この Moo ベースのオブジェクトを突っ込んで データベースにデータを保存したりっていうのが、 GolangのORMの操作感に近いので、その辺りも気に入ってるポイントの一つです。

Promises

これは主に、僕が雑記の方で言っていた、

というApplicatioのコアの方で使ってます。

で、この Promises は、いわゆる Promise を使うデザインパターンを、Perlで実装したモノらしいのですが、いかんせん僕に Promise 脳が無いので、時々えーっとこれがああなって、アレが、こうなって、……あばばばばばばばば! と成るときが未だに有るので、まだ正直使いこなせていません。

が、この Promises は、その非同期実行システムに、

  • AnyEvent
  • EV
  • Mojo::IOLoop

辺りが使え、かつ、コレ以外の非同期実行環境にも対応できそうな感じではあるので、その辺り結構可能性ありそうだな、って感じです。はい。

あと、語るものもないほど当たり前に使っているモジュール達

  1. Plack
  2. cpanm
  3. carton
  4. Test::More

辺りですかね。

とりあえず以上

ですかね。はい。

まあコレ以外にも使ってるモジュールは多分有るんでしょうが、あんまり思い起こせないし、あと他のモジュールに関して言えば、それはその時々の必要に応じて、色々検索して選んでいるだけだと思ってるので、あえてこれ使ってます! っていうのはこれぐらいですかね。

まあ、とりあえず今日の思いつきで書いた記事は以上です。まあ、なんかの参考になればなーと思います。

という事で以上で本日の記事を終わります。まる。