Perl

モジュールのインストールの有無を調べる

perl -MModule -e '' インストール先のパスを調べる perldoc -l Module @INC の内容を表示 perl -Mlocal::lib -le 'print join qq{\n}, @INC'

cpanm

インストール Perlbrewインストール $ curl -L http://cpanmin.us | perl - App::cpanminus cpanmのアップデート $ cpanm --self-upgrade モジュールのインストール $ cpanm Test::More ただのcpan perl -MCPAN -e shell cpan> install Net::Telnet

perlbrew

perlbrewインストール $ sudo curl -kL http://install.perlbrew.pl | bash $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc $ source ~/.bashrc 利用出来るバージョン確認 $ perlbrew available 5.xxのxx部分が奇数のバージョンは開発版 5.xx.0…

特殊変数一覧

$0 実行中のPerlスクリプトのファイル名。 $1,$2… 正規表現のサブパターンにマッチした文字列。 $' 正規表現でマッチしたパターンより後ろの部分の文字列。 $- フォーマット出力において、現在のページに出力すべき残りの行数。この変数に0を入れると強制的…

Sledge HTTP status出力

$self->r->status( 404 ); $self->send_http_header; $self->finished(1);

生年月日から年齢を求める

例1981年6月10日生まれの人の2007年7月19日の時点での年齢。 $ perl -e ‘print int( ( 20070719 - 19810610 ) / 10000 ), "\n"’ $26 有名か?知らなかった。

日本語に対する便利な正規表現

ひらがな \p{Hiragana} カタカナ \p{Katakana} 漢字 \p{Han}

メソッド・関数の存在を調べる。

http://d.hatena.ne.jp/smeghead/20070129/1170068584 動的に関数やメソッドを実行する時に、 実行するメソッドの存在をチェックする方法。 # パラメータからメソッド・関数名を受け取る my $m = $q->param('m'); # $mメソッドがなければ$self->errorを実行 …

CGI::Application Session有効期限設定

CGI::Applicationでセッション有効期限を設定する $self->session->expire('+1y') メソッドが、IE,Safari等のブラウザではexpireが設定されない。バグ? $self->session_cookie(-expires => '+1y'); に変えるとOK。

PerlプログラムからコマンドラインとしてのPerlを使う

東京は雨の日が続いていますね。 さて、Perlでシステム管理スクリプトを書くような場合、 `ls`のように直接コマンドを実行するのが効率良いように思います。ファイル内の文字を変換する時も、ファイルをオープンして、処理して、書き込んで... とするよりは…

コマンドラインから引数を受け取る

今週もまた始まりました。時間はあっという間に過ぎますね。 さて、コマンドラインから使用するツールを作成したのですが、 そういえばコマンドラインからPerlを実行する時の引数の受け取り方 が分からない事に気づきました。$ perl test.pl hoge 実行すると…

インスタンス変数でオブジェクトを保持する

久しぶりに新しい友達ができました。 さて、オブジェクト指向モジュール開発で、あるクラスライブラリの サブクラス的なものを開発する場合は多いです。 その時に、そのままサブクラスとして実装できない、またはしたくない。 でも、どのメソッドからもメイ…

パラメータによる処理の分岐を簡単にする

同僚が大ピンチのようです。大丈夫でしょうか。さて、最近はフレームワークを使用した開発が主流ですが、 ちょっとしたツールや管理ページなどを作る場合、パラメータで 処理を分岐する方法はよく使います。例えば、「データ一覧表示」「データ編集」「デー…

Date::Calcモジュールで経過日時をもとめる。

簡単なプログラムにものすごく時間がかかってしまいました。 さて、任意の日時に経過日数を与え、その日付を求める方法。 使用するモジュールはDate::Calcです。 use Date::Calc; use strct; #現在の日時を取得 my ( $y, $m , $d ) = Date::Calc::Today; pri…

ファイル内文字列の一括置き換え

文字列置き換えを行う時に、対象ファイルが複数の場合はひとつひとつエディタで開き置き換えを行うのは非常に手間がかかってします。 そんな時に便利なのが、やっぱりPerlです。例えば、サイト内の全ての「href="/top/regist.html"」を「href="/top/regist_t…