Perl で配列の配列を作る

my (@a, @b);
push @a, [ @b ];

for my $aref ( @a ) {
    print "[ @$aref ]\n";
}

for my $i ( 0 .. $#a ) {
    print "$i: [ @{$a[$i]} ]\n";
}

for my $i ( 0 .. $#a ) {
    for my  $j ( 0 .. $#{$a[$i]} ) {
        print "$i: $j: $a[$i][$j]\n";
    }
}


- Perl で配列の配列を操作する
  http://perldoc.jp/docs/perl/5.6.1/perllol.pod

Perl + TeX で年賀状

- ちょっと見つけにくいけど,スクリプトは 8 ページ目にある.
- 今年の年賀状はフリーで行こう - Perl + TeX
  http://pcweb.mycom.co.jp/special/2004/nenga/

  なんともマニアックな.

ローカルディスクに結果を保存する RSS リーダー KissReader

- KissReader
  http://www.hyuki.com/techinfo/kiss_reader.html

Perl を最適化する

- Perl を最適化する
  http://www-6.ibm.com/jp/developerworks/linux/041119/j_l-optperl.html

- via: cubic9
  http://cubic9.com/Blog/2004-11-30/

mixi "足あと" 保存+解析 Perl スクリプト mixi Log Loader

  http://hsj.jp/works/archives/001055.html

- Perlモジュール/WWW::Mixi - Mixi に簡単にアクセスするための LWP::UserAgent ライクなモジュール。
  http://digit.que.ne.jp/work/?Perl%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%2FWWW%3A%3 ...

テキストファイルを Gmail にバックアップする

  主にテキストファイルを Gmail にバックアップするつもりででっち上げてみたが,車輪の再開発のような気がしてならない.

#!/usr/bin/env perl

use strict;
use Net::SMTP;
use MIME::Entity;
use File::MMagic;
use Getopt::Long;
use Encode qw/from_to/;
use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;
use Compress::Zlib;
use FileHandle;
use File::Basename;

# SMTP サーバ
my $mailhost = 'smtp.server';

my $from    = $ENV{USER};
my $subject = "";
my @files   = ();

# コマンドライン引数
Getopt::Long::config('bundling');
my $gor = GetOptions(
            'f|from=s'    => \$from,
            's|subject=s' => \$subject,
            'a|attach=s@' => \@files,
);

if (@ARGV == 0 or $gor == 0) {
    print << "USAGE";
usage: $0 mailto [options]
    -f, --from=MAIL         mail from
    -s, --subject=SUBJECT   subject
    -a, --attach=FILE       attachment file(s)
USAGE
    ;
    exit;
}

my $to = shift;

my $smtp = Net::SMTP->new($mailhost) or die;
$smtp->mail($from);
$smtp->to($to);

my $mime = MIME::Entity->build(
    From    => tojis($from),
    To      => tojis($to),
    Subject => tojis($subject),
    Data    => [""]
);

# 添付ファイルのデータを構築
my $mm = new File::MMagic;
for my $file (@files) {
    my $type = $mm->checktype_filename($file);
    my $path = "";
    my $data = "";
    my $name = "";

    # ファイルタイプが 'text/plain' のときは,gzip で圧縮する
    if ($type eq 'text/plain') {
        my $fh = new FileHandle($file);
        $data = join("", $fh->getlines());
        # 圧縮
        deflateInit(-Level => Z_BEST_COMPRESSION);
        $data = Compress::Zlib::memGzip($data);
        $type = 'application/x-gzip';
        # ファイル名を取得
        fileparse_set_fstype('VMS');
        $name = basename($file, "") . '.gz';
    } else {
        $path = $file;
    }

    $mime->attach(
        Path     => $path,
        Type     => $type,
        Data     => $data,
        Filename => $name,
        Encoding => 'Base64'
    );
}

$smtp->data();
$smtp->datasend($mime->stringify);
$smtp->dataend();
$smtp->quit;

#
# エンコードを jis に変換
#
sub tojis {
    my ($data) = @_;
    my $enc = guess_encoding($data);

    from_to($data, $enc->name, 'jis');
    return $data;
}

Perl 5.8.x で文字コードの自動判別と変換

use Encode qw/from_to/;
use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;

my $data = 'データ';
my $enc  = guess_encoding($data);
my $from = $enc->name;
my $to   = 'euc-jp';

from_to($data, $from, $to);

print $data;


- Encode
  http://perldoc.com/perl5.8.0/lib/Encode.html

- Encode::Guess
  http://www.perldoc.com/perl5.8.0/lib/Encode/Guess.html

IE を起動して,指定された URL の画面をキャプチャするツール

  例によって,無償・無保証・著作権放棄 (http://nais.to/~yto/doc/zb/0002.html) で.
  ImageMagick (http://www.imagemagick.org/) 必須.
  Win32::GUI とか Win32::GUI::Loft とか PAR とかの練習台で.

- captureie
  http://pocari.org/tools/captureie/captureie.zip

Perl で GUI

  http://take4.dynsite.net/mt/archives/000019.html

Win32::CaptureIE

  http://blog.nomadscafe.jp/archives/000226.html

  なるほど.面白いかも