Perl 5 今昔
前は王道だったあの書き方も最近ではこうかな、というもの集です。
一般編
oldtype としたものもたいていは動きますし、環境の都合や軽量だなどの理由で普通に使われたりもします。そのへん勘違いなきよう。
CPANモジュールの検索
自動リダイレクトされるので知ってると思いますが。
CPANモジュールインストール
- oldtype:
perl -MCPAN -e shell
- modern:
cpan
- post modern:
cpanm Module
OR マッパー
- oldtype: Class::DBI, DBIx::Skinny
- modern: DBIx::Class, Data::ObjectDriver, Teng, Aniki
テンプレートエンジン
- oldtype: HTML::Template, Template
- modern: Text::MicroTemplate, Text::Xslate
文字コード
- oldtype: Jcode
- modern: Encode
ファイル名
- oldtype: File::Spec, File::BaseDir, Path::Class
- modern: Path::Tiny
open
- oldtype:
open FH, "filename" or die $!;
- modern:
open my $fh, '<', 'filename' or die $!;
または Path::Tinyをつかってpath('filename')->openr()
とか
クラス雛形
- oldtype: Class::Accessor, Class::Accessor::Fast
- old modern: Moose, Mouse
- modern: Moo, Class::Tiny
Makefile.PL
- oldtype: ExtUtils::MakeMaker, Module::Install
- modern: Module::Build
インタラクティブシェル
- oldtype:
perl -de0
, re.pl
(Devel::REPL)
- modern:
reply
(Reply)
日付処理
- oldtype:
time()
や localtime()
でがんばったり Date::Simple, Time::Local, Date::Calc とか
- modern: DateTime, Time::Piece
- post modern: Time::Moment
メール送信
- oldtype: Net::SMTP を直
- modern: Email::Send + Email::MIME, MIME::Lite など
- post modern: Email::Sender, Email::Stuffer
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
Web Application Framework
- oldtype: CGI::Application
- modern: Catalyst, Mojolicious, Dancer2, Amon2
あまり好みに走らないように気をつけつつ追記・修正よろしく!