オブジェクト指向を提供するコアモジュールClass::Structは、Perlにオブジェクト指向の機能を提供する古典的なモジュールです。コンストラクタnewの自動生成、アクセッサの自動生成ができます。アクセッサとは、フィールドの設定・取得を行うためのメソッドのことです。Perl入門ゼミでは、オブジェクトの基本型として、ハッシュリファレンスを持ち、スカラのアクセッサを提供する方法を解説します。xとyというフィールドを持つPointクラスの作成Class::Structを使って、xとyというフィールドを持つPointクラスを作成してみましょう。'$',};useでは、モジュール名の後ろに引数を渡すことができます。引数は、パッケージ名です。この引数で、どのパッケージに対して、コンストラクタやアクセッサを生成するのかを指定します。__PACKAGE__は、現在のパッケージ名を返す関数で、Pointが返ります。第二引数は、フィールドを定義した、ハッシュのリファレンスです。アクセッサが自動生成されます。Pointクラスの利用Pointクラスを利用してみましょう。先ほどのコードに続けて以下を記述します。$y2)\n";mainパッケージについては、パッケージの宣言の記事を参考にしてください。コンストラクタnewの呼び出しコンストラクタnewを呼び出すことができます。フィールドの値を渡すこともできます。2);アクセッサの呼び出し値の設定・取得を行うために、アクセッサを呼び出すことができます。$y2)\n";Class::Structで、継承することはできますか?Class::Strcutによって作成したクラスを継承することは可能ですが、制限として、フィールドを追加するということはできません。継承を行いたい場合は、フィールドを追加したい場合が、ほとんどですので、できないと考えておくのがよいでしょう。継承を予定しているのであれば、Perlコア限定ならblessを使ってオブジェクトを作成します。CPANモジュールを利用する場合は、継承によるフィールド定義の追加をサポートしているモジュールを利用しましょう。コンストラクタをオーバライドすることはできますか?Class::Strcutでは、対象のクラスにコンストラクタが生成されますので、コンストラクタをオーバーライドすることはできません。コンストラクタのカスタマイズを予定しているのであれば、Perlコア限定ならblessを使ってオブジェクトを作成します。CPANモジュールを利用する場合は、コンストラクタのカスタマイズをサポートしているモジュールを利用しましょう。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebサービス開発も。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。