名前の衝突を防ぐオブジェクト指向で書かれたモジュールは、使いやすいことが多いです。オブジェクト指向で書くのは、便利だからであって「関数型の記述が古い」からではありません。今回からはしばらく、関数型のモジュールにはないオブジェクト指向型のモジュールの利点を挙げていきます。名前の衝突を防いでくれるオブジェクト指向のひとつ目の利点は、名前の衝突を防いでくれることです。関数型のモジュールのEncodeと、オブジェクト指向型のモジュールのXML::Simpleを比較してみましょう。EncodeEncodeをuseすると、decodeという関数が使用できるようになります。$string);XML::SimpleXML::Simpleをuseしても、何の関数も使えるようになりません。XML::Simple->newして作成したオブジェクからはメソッドが使用できます。XML::Simple->new;$parser->XMLin($file);Encodeをuseすると、decodeという関数が使用できるようになるのですが、もしdecodeという関数がすでにどこかで定義されていたとしたらどうでしょうか?そうすると名前の衝突が起こります。オブジェクト指向型のモジュールであるXML::Parserは何の関数もインポートしません。オブジェクト指向型のモジュールは利用者が名前の衝突を気にする必要がないのです。これが、一つ目の利点です。オブジェクト指向型のモジュールの欠点は記述が冗長になることです。Encodeのほうが、記述が短いですね。指針としては、プログラムの中で頻繁に利用することになり、複雑なオプションの指定がないようなものは関数型のモジュールとして作成すると記述がシンプルになります。特殊な用途で、オプション指定が複雑なものは、オブジェクト指向型のモジュールにすると、名前の衝突もなく利用しやすいです。場合はオブジェクト指向型のモジュールを作成したほうが良い場合が多いと思います。関数型のモジュールにする場合は良く考えてからにします。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebスタートアップも。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。このサイトはGiblogで製作されています。