- Perl ›
- here
Perlモジュール徹底解説
Perlのモジュールについての解説です。Perlでいうモジュールとは良く使う機能や便利な機能をプログラムで利用するための仕組みです。
Perlの基本文法を覚えたらいろいろなモジュールを使ってみましょう。モジュールを組み合わせると複雑な問題を簡単に解決したり、業務の自動化に役立ったりします。
またCPANと呼ばれるモジュールの配布サイトでは役立つたくさんのモジュールが有志によって登録されており無料で利用することができます。cpanコマンドの使い方についてはCPANモジュールの解説を参考にしてください。
コマンドラインからモジュールを簡単にインストールでき、インストールしたいモジュール一覧を設定ファイルに記述できるcpanmと呼ばれるCPANクライアントもあります。
モジュールの作成方法
「パッケージ」などのモジュール作成のための基礎知識を知りたい場合は「モジュールの基礎」を参考にしてください。実際にモジュールを自分で作成してみたい方はModule::Starterモジュールを使って、モジュールのひな型を作成するのが早道です。
モジュールの存在確認
特定のモジュールが存在しているかどうかを知りたい場合は、perldocコマンドでドキュメントがあるかを調べてみるのが一番早い方法です。
# perldocコマンド perldoc Mojolicious
モジュールがインストールされている場所を知りたい場合は「-l」オプションを使用してください。パスが表示されます。
perldoc -l Mojolicious
モジュールのバージョンを知りたい場合は「-m」オプションを使って、モジュールファイルを実際に見てみるのが一番よいです。
perldoc -m Mojolicious
バージョンが指定されているパッケージ変数を探してください。
our $VERSION = '7.25';
モジュールの読み込みパス
モジュールの読み込みパスの追加方法については、以下を参考にしてください。
標準モジュール
「標準モジュール」はPerlをインストールしたときに最初から利用できるモジュールのことです。「標準モジュール」だけでも結構たくさんのことがでてしまいます。
| モジュール名 | 説明 |
| strict | 文法を厳格にする |
| warnings | 警告を出力する |
| 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 |
大きな数の計算 |
| Class::Struct | オブジェクト指向を提供するコアモジュール |
CPANモジュール解説
Perlでは無料のモジュールをCPANから簡単にインストールして使用することができます。
Web開発
| Mojolicious | Webフレームワーク |
| Mojolicious::Plugin::AutoRoute | めんどうなルートを自動的に生成 |
| Amazon::S3::Thin | 薄くて、軽量、低レベル操作ができるAmazon S3クライアント |
メール送信
| MIME::Lite | メールを簡単に送信 |
開発環境
| perlbrew | ユーザー環境にPerlをインストールする |
| cpanm | CPANインストール |
オブジェクト指向
| Class::Accessor::Fast | アクセサの作成 |
| Object::Simple | デフォルト値つきのアクセサの作成(日本語訳) |
ユーティリティ
| DDP | データをわかりやすく出力する |
| D | データをエンコードし標準エラー出力へダンプ |
データベース
| 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 | さまざまな三角関数 |
Webスクレイピング
| Selenium::Remote::Driver | JavaScript対応のWebスクレイピング |
| Selenium::Chrome | Chomeを使ったJavaScript対応のWebスクレイピング |
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 | 公式に非推奨。コアモジュールから取り除かれます |
Perlゼミ

