Perlクックブック - Perlの鉄人が贈るレシピ集

  4873110378
  http://www.amazon.co.jp/o/ASIN/4873110378/todaysnonsenc-22/ref=nosim/
  トム クリスチャンセン (著), ネイザン トーキントン (著), 田和 勝 (翻訳)
  オライリー・ジャパン
  ISBN: 4873110378
  2001/03/23
  6,090 円

- 目次 (日本語)
  http://www.oreilly.co.jp/BOOK/pcook/contents.htm

- サンプルのダウンロード
  http://examples.oreilly.com/cookbook/

Perl で日付の処理

- 楽チン

print scalar(localtime);


  Thu May 15 10:22:54 2003

- 自由度高し

use POSIX qw(strftime);
print strftime "%Y-%m-%d %T\n", localtime;


  2003-05-15 10:22:54

Perl でどこで呼び出されたかを返す caller

open FILE, 'hoge' or error("can't open file\n");

sub error {
    print @_[0];
    my @call = caller;
    print "Package name: $call[0]\n";
    print "File name:    $call[1]\n";
    print "Line no:      $call[2]\n";
}


- エラー時の出力

can't open file
Package name: main
File name:    ./test.pl
Line no:      5

Perl で Excel ファイルに出力するモジュールの日本語訳

- (ちょっと古いけど) PHP 版でも参考になる.
- Spreadsheet::WriteExcel version 0.33
  http://member.nifty.ne.jp/hippo2000/perltips/Spreadsheet/WriteExcel.htm

Perl の排他制御 (flock,open,symlink,mkdir,rename)

  http://homepage1.nifty.com/glass/tom_neko/web/web_04.html

Perl による IMAP 認証

use Mail::IMAPClient;

$imap = Mail::IMAPClient->new(
    Server   => $server,
    User     => $user,
    Password => $password
) || die("Can not login.");

Perl によるセッション管理

- Apache::Session モジュールで可能
  DBI
  IPC::Shareable
  Storable
  FreezeThaw
  Digest::MD5
  MIME::Base64
  の各モジュールが必要.

シェルエスケープ

sub shell_escape {
    $_ = shift;
    s/([\&\;\`\'\\\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r ])/\\$1/g;
    return $_;
}

Perl で複数行コメント

  =英字 から =cut まで.

=comment
ここはコメントです.
=cut

Perl のセキュリティホール

  5.005_3 - 5.8 までのセーフモジュール (Safe.pm) にセキュリティホール.

- Security hole found in the Safe module
  http://use.perl.org/articles/02/10/06/1118222.shtml?tid=5