@EXPORTと@EXPORT_OK


パッケージ(モジュール)の読みこみ時にデフォルトでimportされるサブルーチン(メソッド)を決めるのが@EXPORTと@EXPORT_OKになります。

@INCの追加


perlで@INCにパスを追加するにはコマンドラインスイッチにオプションを渡すか、BEGIN文もしくはuse libにてパスを追加する方法があります。

@ISAとは


@ISAはpackageが属する(継承する)クラスを指定するために使用されます。

ALRMシグナルでのタイムアウト処理


タイムアウトの処理にはALRMシグナルを使用します。

Archive::Zip - ZIPファイルの解凍


PerlでZIPファイルを解凍するにはArchive::Zipモジュールを使用します。

CSRをdecodeするルーチン


SSL証明書をリクエストする際に必要となるCSRが有効かどうかを調べるためのサブルーチンを書いてみました。

CSVファイルの処理


Text::CSV_XSモジュールを使用するとCSVファイルの読み込みが簡単に行える。このモジュールを使うと、カンマ区切りのCSVで、ダブルクォーテーション内にカンマが使われている場合などもうまく処理してくれます。

Class::Accessor - accessorの自動作成


Class::Accessorを使えばnew constructerやaccessorを自動的に作成してくれる。

Config.pm - CPANの設定


CPANをはじめて起動した際に様々な設定をするかと思いますが、これらの設定はConfig.pmに保存されています。

Config::Simple - 外部設定ファイルの利用


設定ファイルを用意し、それをperlで読み込み使用するにはConfig::Simpleを利用するとよい。たとえばtest.cfgというブロック形式の設定ファイルを以下のように用意ししたとします。Config::Simpleは自動で設定ファイルの形式を判別し、利用しやすいようにしてくれます。

DBIx::Class::Schema::Loader


DBIx::Class::Schema::Loaderを使用すればスキーマを作成する手間が省ける。

DBMファイルの読み込み


DBMファイルはtie関数を使用して開きます。

Data::Dumper - データ構造を出力


Data::Dumperはデータ構造をわかりやすく、表示してくれるモジュールです。

Date::Calc - 日付の計算


Date::Calcモジュールは日付の計算などを行ってくれるモジュールです。

Digest::SHA


Digest::SHAモジュールを使用すればSHA1メッセージダイジェストの生成が可能。

Encode::Guess - 文字コードの判別


Encode::Guessモジュールは文字コードの判別に使用されます。ただし判別結果が複数になることがあるので注意。

EncodeモジュールでのMIME Encode


Encodeモジュールで文字コードの変換ができるが、MIMEエンコードをするには以下のようにすればよい。

Getopt::Long - コマンドラインからのオプションと値の受け取り


スクリプトにコマンドラインからオプション名と値を渡したい場合にはGetopt::LongモジュールのGetOptions()を利用すると便利です。

HTML::LinkExtor - リンクの取り出し


HTML::LinkExtorを使えばhtmlドキュメントからリンクの一覧を簡単に取り出すことができます。

HTTP::Request::Common


HTTP::Request::Commonを使えば簡単にリクエストデータを生成することが可能。

IP::Country::Fast - IP割り当て国を調べる


IPアドレスの割り当て国を調べるにはIP::Country::Fastモジュールを使用します。

LWP::UserAgent - Webデータの取得


LWP::UserAgentを利用すればWEBデータを取得できます。GETメソッドのみでしたらLWP::Simpleの方が簡単です。ちなみにhttpsでの取得も可能ですが、Crypt::SSLeayがインストールされている必要がある。

Module::Starter::PBPによるモジュールの作成


perlのモジュールの雛形を作るコマンドにh2xsというコマンドがありますが、最近ではModule::Starterを使うのが主流のようです。また、Module::Starter::PBPではPerl Best Practicesが推奨するテンプレートにてモジュールが作成されます。

Net::Ping - ネットワークの疎通確認


Net::Pingを使えば、特定のサーバとの疎通があるかどうかの死活監視を行うことができます。Net::PingモジュールではICMP PingのほかTCP、UDPが使用できます。

Perlでの複数行コメント


Perlでコメントを入れるには#を使用します。#は行単位でのコメントとなりますので、複数行にまたがるコメントを入れたい場合はperlのPOD機能を使用します。

Perlモジュールのインストール方法


perlモジュールをインストールするにはCPANを使用すると便利である。ソースを取得してコンパイルしてからインストールしてもよい。

Template::Toolkit


Template::Toolkitは強力なテンプレート処理システムでHTML::TemplateやText::Templateなどといった他のテンプレート処理モジュールより汎用性の高い処理をすることが可能です。

Text::Template - テンプレートファイルの読み込み


Text::Templateモジュールを使用すれば、perlスクリプトから外部テンプレートを読み込むことができます。

Use of uninitialized value in string eq


use warningsを使用していてUse of uninitialized value in string eqというエラーがでた場合、初期化されていない変数が比較に使われていることを意味します。

Weak references are not implemented in the version of perl


Weak references are not implemented in the version of perlというエラーが出た場合、Scalar::Utilを再インストールすれば直る。

Wide character in print at ...


Wide character in print atというエラーはUTF-8フラグが付いた文字列をprintしようとしているからである。

XML::RSS::Parser


XML::RSS::Parserを使ったRSSのparser例。

XML::Simple - XMLデータの読み込みと書き出し


簡単なXMLデータであればXML::Simpleを使用できる。XML::Simpleではデータ読み込みのためのXMLinと書き出しのためのXMLoutを提供してくれる。

XML::XPath - 要素の検索


XML::XpathはXML::Parserを基盤としたモジュールで、XMLより特定の要素情報を抜き出すのに使用される。

XMLRPC::Lite


SOAP::Liteに含まれるXMLRPC::Liteの使い方。

chdir - ディレクトリの移動


ディレクトリの移動にはchdir関数を使用します。成功すると1を返し、失敗すると0を返します。移動先のディレクトリが省略されるとホームディレクトリに移動します。

defined - 変数が未定義値かどうかを調べる


defined関数は変数が未定義(undef)かどうかを調べるための関数です。変数が定義されている場合には1を返します。(空文字列でも変数自体が定義されていれば1を返します。)エラーの戻り値にundefを返すものがあるので、エラー処理に使用されることが多い。

delete - ハッシュの値とキーを削除


ハッシュの特定の値とキーを削除するにはdelete関数を使用します。

each - ハッシュからキーと値を取り出す


ハッシュからキーと値を取り出すにはeachを使用します。

fileparse - ファイルパスからファイル名などを取り出す


File::Basenameモジュールのfileparseは、ファイルパスからファイル名、パス、拡張子に分解する機能を提供してくれます。

gethostbyaddr - IPアドレスからホスト名を取得


IPアドレスからホスト名を取得するにはgethostbyaddr関数を使用します。

gethostbyname - ホスト名からIPアドレスを取得


ホスト名からIPアドレスを取得するにはgethostbynameを使用します。

h2xs - perlモジュールの雛形を作成


h2xsはperlモジュールの雛形を作成する際に使用されます。(本来はCのヘッダファイルである.hからperlでCの関数を呼び出すextensionを作成するためのものらしい)

if文で{}の省略


通常if文は以下のように実行文を{}の中に書く形式を取るが、実行文が一つの場合は{}を省略して書くことも可能。

keys - ハッシュからキーを取り出すには


ハッシュからキーを取り出すにはkeysを使用します。

mkdir - ディレクトリの作成


ディレクトリの作成にはmkdirを使用します。以下の例ではカレントディレクトリにtest_dirというディレクトリが存在するかを確認し、存在しなければディレクトリを作成します。

our - グローバル変数の宣言


perlのバージョン5.6からはグローバル変数の宣言のため、use varsの代わりにourを使用することができるようになりました。

pdflib - PDFファイルを生成する


pdflibは動的にPDFファイルを作成してくれるためのライブラリです。

perlでのSSH接続


PerlからSSH接続を扱うにはNet::SSH::Perlを使用すればよい。実行がやたらと遅い場合にはMath::BigInt::GMPが入っていない可能性があります。

perlでの日付の比較


perlで日付の比較を行うにはDate::Calcモジュールを使用すると便利です。

perlでシステムコマンドを使用するには


Perlでシステムコマンドを使用するには `` 内にコマンドを記述すればよい。

perlの特殊リテラル


perlには以下のような特殊リテラルがある。 __FILE__ 現在のファイル名 __LINE__ 現在の行番号 __PACKAGE_ 現在のパッケージ名 詳しくはperldocでperldata(Special Literals)を参照のこと。

perlの特殊変数一覧


perlにて使用される特殊変数の一覧。

perlモジュールの作成方法


CPANなどでモジュールを探して、使用したりすることはよくありますが、自作のモジュールを作成するにはどうすればよいでしょうか?ここではモジュールの作成方法を簡単に説明します。

pod2manでperlモジュールのインストール失敗


pod2manが入っているにもかかわらず、pod2manが見つからないといったエラーがでてPerlモジュールがコンパイルできない場合、環境変数LC_ALLをセットするとよい。

ref - リファレンスが参照している変数のタイプ


ref関数はリファレンスが参照している変数のタイプを返します。

select - ファイルハンドルの設定


select関数は現在設定されているファイルハンドルを調べたり、設定するために使用されます。またsleepのようにプログラムを一時停止する際にも使用される。

sleep - プログラムの一時停止


perlのプログラム内で処理を一定時間停止するにはsleepを使用します。 [使...

stat - ファイル情報の取得


stat関数はファイルの様々な情報を得るための関数です。この関数を使うことでファイルサイズや、ファイル所有者、最終更新時間などを調べることができます。

undef - 変数の定義を無効にする


undef $query; で既に定義された変数の定義を無効にします。...

until - 制御文


until文は条件が真になるまでブロック内の処理を繰り返します。

use base - クラスの継承


use baseはpackageの所属するクラスの宣言をするのに使用されます。これにより親クラスのメソッドを使えるようになります。

use vars - use strict内でグローバル変数を使用するには


use varsはuse stritc宣言した中でグローバル変数を使用するために使われます。

values - ハッシュから値を取り出す


ハッシュから値を取り出すにはvaluesを使用します。

べき乗の計算


perlでべき乗を求めるには ** を使用します。 [例] print 2 **...

カレンダーを表示する


Date::Calc の Calender()を使用すれば、簡単にカレンダーを表示できます。

サブルーチンから複数の配列を返すには


サブルーチンから複数の配列を戻すにはリファレンス(参照)を使用します。

サブルーチンを取り込むには


Perlでサブルーチンを取り込むにはrequire文を使用します。

ファイルをアップロードさせる


ファイルをアップロードさせるにはinput typeにfileを指定します。ここで指定したname属性がそのままファイルハンドルになります。以下ファイルをアップロードさせる際の手順。

モジュールが見つからない場合のエラー処理


モジュールがインストールされていない場合、[Can't locate Net/A...

モジュールのバージョン確認方法


インストールされているPerlモジュールのバージョンを確認するには以下のようにすればよい。

リファレンスの階層構造


Perlのリュファレンスを使用すれば、変数を階層的に管理することができます。例えば以下のように、ハッシュリファレンスの中にハッシュリファレンスを格納することができます。

一定時間後の日付を調べるには


現在の時間から一定期間後の日付を調べるには、time関数で得た時間から一定時間後の秒数を足してあげればよい。

変数の局所化に関するmyとlocalの違い


myとlocalはどちらも変数を局所化するために使われます。

小数点切り上げ


perlで小数点を切り上げるにはPOSIXモジュールを使用すると便利です。

小数点切り捨て


int関数を使用すれば小数点以下を切り捨てて値を整数にしてくれます。

数値3桁ごとにカンマで区切るには


数値を三桁ごとにカンマで区切るには、while文で順番に置換していきます。

数字のソート


数字のソートはそのままだとうまくいかないため、以下のようにします。 my @so...

標準入力からの読み込み


標準入力の読み込みには<STDIN>を使用します。

標準入力の内容を標示しないようにする


パスワードなどを入力させる場合、端末に内容を表示させないようにするにはsttyコマンドでechoを無向にすればよい。

正規表現 - 数字以外にマッチさせる


数字以外の文字にマッチさせるには \D を使用します。

正規表現 - 量指定子


正規表現にて使われる+や*は量指定子と呼ばれマッチする回数に違いがある。またマッチ回数を指定するには{}に回数を指定すればよい。

無名ハッシュへのリファレンス


以下のようにすることで無名ハッシュへのリファレンスを作成できます。

環境変数の取り出し


環境変数は連想配列%ENVに格納されています。

郵便番号の入力形式チェック


unless ($zip !~ /[^0-9-]/) { print '郵...