Perl入門ゼミ

  1. Perl
  2. here

Perlモジュール徹底解説

Perlのモジュールについての解説です。Perlでいうモジュールとは良く使う機能や便利な機能をプログラムで利用するための仕組みです。

Perlの基本文法を覚えたらいろいろなモジュールを使ってみましょう。モジュールを組み合わせると複雑な問題を簡単に解決したり、業務の自動化に役立ったりします。

またCPANと呼ばれるモジュールの配布サイトでは役立つたくさんのモジュールが有志によって登録されており無料で利用することができます。cpanコマンドの使い方についてはCPANモジュールの解説を参考にしてください。

モジュールの作成方法

「パッケージ」などのモジュール作成のための基礎知識を知りたい場合は「モジュールの基礎」を参考にしてください。実際にモジュールを自分で作成してみたい方はModule::Starterモジュールを使って、モジュールのひな型を作成するのが早道です。

モジュールの存在確認

特定のモジュールが存在しているかどうかを知りたい場合は、perldocコマンドでドキュメントがあるかを調べてみるのが一番早い方法です。

# perldocコマンド
perldoc Mojolicious

モジュールがインストールされている場所を知りたい場合は「-l」オプションを使用してください。パスが表示されます。

perldoc -l Mojolicious

モジュールのバージョンを知りたい場合は「-m」オプションを使って、モジュールファイルを実際に見てみるのが一番よいです。

perldoc -m Mojolicious

バージョンが指定されているパッケージ変数を探してください。

our $VERSION  = '7.25';

標準モジュール

「標準モジュール」はPerlをインストールしたときに最初から利用できるモジュールのことです。「標準モジュール」だけでも結構たくさんのことがでてしまいます。

*モジュール名 *説明
Getopt::Long コマンドライン引数のオプションを処理する
Archive::Tar tarファイルの展開と作成(v5.10以降)
Cwd カレントディレクトリのパスを取得する
File::Basename ファイルのベース名とディレクトリ名の取得
File::Copy ファイルの移動とコピー
File::Path 複数階層のディレクトリの作成と削除
File::Spec ファイル名に対する移植性のある処理
File::Temp 一時ファイルの作成
File::Find ファイルの検索
FindBin スクリプトが存在するディレクトリのパスの取得
Encode 日本語などのマルチバイト文字列を適切に処理する
utf8 ソースコード内の文字列を内部文字列に変換
Carp モジュールの呼び出し元の観点で例外を発生させる
lib モジュールの検索パスの追加
Time::Piece 日付・時刻を扱うための標準モジュール(v5.10からコアモジュール)
Time::Local localtime,gmtimeの逆返還
base クラスの継承
Data::Dumper 変数の内容を出力する
Benchmark ベンチマーク(性能比較)を行う
JSON JSONデータの解析
MIME::Base64 Base64形式へのエンコード
MIME::QuotedPrint quoted-printable形式へのエンコード
Digest::MD5 MD5値を求める
Digest::SHA 各種SHA値を求める (v5.10以降)
Storable データのシリアライズ化
Scalar::Util スカラ値に関するユーティリティ
List::Util 配列に対するさまざまな操作
Hash::Uti ハッシュのキーの制限
Sys::Hostname ホスト名の取得
Net::FTP FTPクライアント
Net::Ping リモートホストの生存確認
Exporter 関数のエクスポート
CPAN CPANからモジュールをインストールする
Pod::Usage PODドキュメントの出力
Errno システムのエラー番号をあらわす定数
POSIX POSIXで定義された関数
Math::BigInt
Math::BigFloat
大きな数の計算

CPANモジュール解説

Perlでは無料のモジュールをCPANから簡単にインストールして使用することができます。

Web開発

Mojolicious 人気のWebフレームワーク
Mojolicious::Plugin::AutoRoute めんどうなルートを自動的に生成

メール送信

MIME::Lite メールを簡単に送信

開発環境

perlbrew ユーザー環境にPerlをインストールする
cpanm CPANインストール

オブジェクト指向

Class::Accessor::Fast アクセサの作成
Object::Simple デフォルト値つきのアクセサの作成(日本語訳)

ユーティリティ

DDP データをわかりやすく出力する

データベース

DBIx::Custom データベース簡単操作
MySQL::Diff MySQLの差分を表示

日付

DateTime 日付の汎用的な処理

統計解析

PDL 統計解析

画像編集

Imager 画像編集

CSV

Text::CSV::Encoded 日本語を含んだCSVファイルを取り扱う

テキスト差分

Text::Diff テキストの差分確認

XML

XML::Simple シンプルなXMLパーサ

HTMLバリデーション

Validator::Custom HTMLフォームの検証

ページング

Data::Page ページング処理の支援
Data::Page::Navigation ページのナビゲーションの作成

モジュール作成

Module::Starter モジュールの雛形を作成する

性能解析

Devel::NYTProf 使いやすいプロファイラ

ソースコード整形

perltidy ソースコードの整形

ping

Net::Ping::External pingコマンドの実行

試験

IO::ScalarArray 標準入力の自動試験
IO::Capture 標準出力、標準エラー出力の自動試験

FFI

FFI::Raw ダイナミックライブラリ内の関数を呼び出す

三角関数

Math::Trig さまざまな三角関数

Perlモジュール紹介

ここでは詳しく解説できなかったモジュールについても以下で紹介していますので、ご覧ください。

非推奨のモジュール

非推奨のモジュール。

*モジュール名 *説明
cgi-lib.pl とても古いです。変わりにCGI.pmを使いましょう
Devel::DProf シンプルなプロファイラ(性能解析ツール)ですがバグが多いので、コアモジュールから取り除かれる予定
encoding 公式に非推奨。ソースコードはUTF-8で保存して、utf8プラグマを使いましょう
jcode.pl とても古いです。文字列を扱うにはEncodeモジュールを使用します
Jcode 公式に非推奨。文字列を扱うにはEncodeモジュールを使用します
bytes 公式に非推奨。実際にEncodeモジュールのencode関数でエンコードしてから長さを調べるようにします
vars 古い。ourでパッケージ変数を宣言するのと同じ効果を持ちます。今ならourを使ってパッケージ変数を宣言しましょう
Class::ISA 公式に非推奨。コアモジュールから取り除かれます