Perlの勧め(1) Class::Accessor::Fastを使おう

onagatani 2009年04月10日

パワフルなCMSを98,000円で。

Movable Typeで承認フロー、会員サイト構築ができます。

onagataniです こんにちわ。

今回から数回に分けて自分のお勧めするモジュールを紹介したいと思います。

内容がモダンじゃない!と思う方もいるかもですが自分の好きなモジュールを紹介しますので最新の技術が知りたい方は見ないように...。

一回目は「Class::Accessor::Fast」です。

これはなにかというとPerlでアクセサを自動生成するモジュールです。

たとえば、下記のような場合にとても便利です。

MyClass.pm

package MyClass;

use strict;
use warnings;

sub new {
    my ($class, $args) = @_;
    my $self = {
        address => $args{address},
        blog       => $args{blog},
    };
    return bless $self, $class;
}

sub address {
    my ($self, $address) = @_; 
    if ($address){
        $self->{address} = $address;
    }   
    return $self->{address};
}

sub blog {
    my ($self, $blog) = @_; 
    if ($blog){
        $self->{blog} = $blog;
    }   
    return $self->{blog};
}

1;
__END__

これを

package MyClass;

use strict;
use warnings;
use base qw/Class::Accessor::Fast/;

__PACKAGE__->mk_accessors(qw/ address blog /);

1;
__END__

このように書くことができます。
アクセサを自動生成するほかにnewメソッドも作ってくれるのでとっても便利。
(newはほとんどの場合オーバーライドすることになると思いますが)

使い方も一緒です。

#!/usr/bin/perl

use strict;
use warnings;
use MyClass;
use Perl6::Say;

my $obj = MyClass->new({
    address => 'tokyo',
    blog    => 'wordpress',
});

say $obj->address;
say $obj->blog;

$obj->address('obihiro');
$obj->blog('mt');
say $obj->address;
say $obj->blog;

結果
perl test.pl
tokyo
wordpress
obihiro
mt

というわけでコードも短くなるし読みやすくなるのでお勧めします。

投稿者 onagatani : 04/10

Movable Typeを利用したウェブサイト開発はお任せください!

100の企業が認めた成功へ導くCMS構築

スカイアークは創業以来6年間、Movable Typeを一貫して活用し、お客様の様々なウェブサイトをCMS化しました。MTを利用したウェブサイトはスカイアークにお任せください。

MT・CMS構築について詳しく見る

お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

MTCMS Smartキャンペーン!
承認フロー付きCMS「MTCMS Smart(98,000円)」をお買い上げの方、MTライセンス1本がタダに!

配布プラグイン一覧

MultiFileUploader
複数ファイルを一括でアップロードできるMovable Typeプラグイン
ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る