sironekotoroの日記

Perl で楽をしたい

続・はじめてのPerl 第2版 第2章 モジュールの使い方 , 第3章 中級者の基礎知識

モジュールのインターフェース

  • 確かに、「関数インターフェース」と「オブジェクト指向インターフェース」の二種類あったわ

    • 関数インターフェースの例
      • use File::Basename qw( fileparse basename );
    • オブジェクト指向インターフェースの例
      • my $filespec = File::Spec->catfile( $homedir{gilligan}, 'web_docs', 'photos', 'USS_Minnow.gif' );
  • モジュールの関数の呼び出し方がなんで統一されてないんだろう?という疑問を今まで持たなかったな・・・

    • 我ながら鈍い

map,grep,glob

  • それぞれがリストをとって処理する、というのはもちろんわかっているんだけど
  • それを連結・連続して処理させるって発送はなかった
  • 練習問題の、入力した正規表現に合致するファイルを表示する、という問題
print
map { " $_\n" }
grep { eval{ /$regex/ } } glob( ".* *" );
  • glob でディレクトリ内のファイル一覧をリストで取得し、そのリストをgrepで処理して合致するものだけをリストにし、そのリストにmapで文字列修飾する
  • すげえ
  • でもあんまりまとめすぎると可読性落ちそう