Perl 5 今昔
前は王道だったあの書き方も最近ではこうかな、というもの集です。
一般編
oldtype としたものもたいていは動きますし、環境の都合や軽量だなどの理由で普通に使われたりもします。そのへん勘違いなきよう。
CPANモジュールインストール
- oldtype:
perl -MCPAN -e shell
- modern:
cpan
- post modern:
cpanm Module
OR マッパー
- oldtype: Class::DBI
- modern: DBIx::Class, Data::ObjectDriver, DBIx::Skinny
テンプレートエンジン
- oldtype: HTML::Template
- modern: Template
- post modern: Text::MicroTemplate, Text::Xslate
文字コード
- oldtype: Jcode
- modern: Encode
ファイル名
- oldtype: File::Spec, File::BaseDir
- modern: Path::Class
open
- oldtype:
open FH, "filename" or die $!;
- modern:
open my $fh, '<', 'filename' or die $!; または Path::Classをつかってfile('filename')->open('r') とか
クラス雛形
- oldtype: Class::Accessor::* とか
- modern: Moose
Makefile.PL
- oldtype: ExtUtils::MakeMaker
- modern: Module::Install
インタラクティブシェル
- oldtype:
perl -de0
- modern:
re.pl (Devel::REPL)
日付処理
- oldtype:
time() や localtime() でがんばったり Date::Simple, Time::Local, Date::Calc とか
- modern: DateTime
メール送信
- oldtype: Net::SMTP を直
- modern: Email::Send + Email::MIME, MIME::Lite など
- post modern: Email::Sender
Public な変数
- oldtype:
use vars qw($VERSION);
- modern:
our $VERSION;
偽なら代入
- oldtype:
$foo = $var unless defined $foo
- 5.10:
$foo //= $var
継承
- oldtype:
use base
- modern:
use parent (とくに Catalyst 周辺)
恐怖の Catalyst 編
oldtype のものはサポートされなくなっていくと思われます。
Root
- oldtype: App.pm に書く(もういないかな)
- modern: App/Controller/Root.pm に
__PACKAGE__->config->{namespace} = ''; してそこに書く
基本最終処理
- oldtype: Catalyst::Plugin::DefaultEnd
- modern: Catalyst::Action::RenderView
DBIx::Class モデル
- oldtype: Catalyst::Model::DBIC
- modern: Catalyst::Model::DBIC::Schema
認証
- oldtype: Catalyst::Plugin::Authentication::*
- modern: Catalyst::Plugin::Authentication と Catalyst::Authentication::*
キャッシュ
- oldtype: Catalyst::Plugin::Cache::*
- modern: Catalyst::Plugin::Cache と好きな Cache::
まあそれでも
- oldtype: CGI::Application
- modern: Catalyst
あまり好みに走らないように気をつけつつ追記・修正よろしく!