PERL HACKS

しおり代わりに役に立ちそうなHacksをピックアップしておきます。書籍のサンプルコードはhttp://examples.oreilly.com/perlhks/からDLできます。

  • HACKS#1 FirefoxCPANショートカットを加えよう

ロケーションバーからcpan Acmeのように入力してCPANを検索するためのブックマーク設定

名前 CPANサーチ
URL http://search.cpan.org/search?mode=module;query=%s
キーワード cpan

  • HACKS#19 ファイルを配列として扱おう

Tie:Fileを使う。ファイルの各行を配列の各要素として処理できる。

  use Tie::File;

  tie my @csv_lines, 'Tie::File', 'big_file.csv'
      or die "Cannot open big_file.csv: !$\n";
  • HACKS#25 データベースカラムをバインドしよう

usersというテーブルからname,dob,shoe_sizeの各フィールドを取ってきて、結果を1行づつfetch()してハッシュに格納する。

  # assume you already have $dbh connected
  my %user;
  my $user_fetch = bind_hash( $dbh, \%user, qw( users name dob shoe_size ) );

  while ($user_fetch->())
  {
      print "$user{name}, born on $user{dob}, wears a size " .
            "$user{shoe_size} shoe\n";
  }

  sub bind_hash
  {
      my ($dbh, $hash_ref, $table, @fields) = @_;

      my $sql = 'SELECT ' . join(', ', @fields) . " FROM $table";
      my $sth = $dbh->prepare( $sql );

      $sth->execute();
      $sth->bind_columns( \@$hash_ref{ @{ $sth->{NAME_lc} } } );

      return sub { $sth->fetch() };
  }
  
  • HACKS#31 個人バンドルを作ろう

別のPerl環境に自分用のモジュールを一発でインストールするために、空のパッケージをつくってCONTENTSセクションに必要なモジュールを書き込んでおく。インストールは、
cpan -MCPAN -e 'install Bundle::Personal::Mine'

package Bundle::Personal::Mine;

$VERSION = '0.42';

1;

__END__

=head1 NAME
 
Bundle::Personal::Mine - My favorite testing modules
 
=head1 SYNOPSIS
 
C
 
=head1 CONTENTS
 
Test::Class
 
Test::Differences

####以下省略
  • HACKS#34 標準モジュールツールキットを作ろう

いつも使うモジュールをまとめたパッケージを作ると、他のモジュールを使っているモジュールを使うのは名前空間やらレキシカルスコープとかややこしい。複数のモジュールのuse文をマクロにする方法がある。

package Std::Modules;
use Filter::Macro;     # <-- The magic happens here

use strict;
use warnings;
use Carp;
use Smart::Comments;
use XML::Parser;
use File::Spec;
use IO::Prompt qw( prompt );
use File::Spec::Functions;
use File::Slurp qw( slurp );
use DateTime;
use DateTime::Duration;
use DateTime::TimeZone;
use DateTime::TimeZone::Antarctica::Mawson;
# etc.
# etc.

1;

Perl Hacks ―プロが教えるテクニック & ツール101選

Perl Hacks ―プロが教えるテクニック & ツール101選