Perlメモ



CHI勉強会でまとめたTogetterを分析するために、
Perlを使って必要な文字列を取得してみようの回



普段はJavaパッケージのjava.util.regexを乱用していたのでPerlは初です
まずはインストールからスタート

以下のURLから最新版をダウンロード
ActivePerl is Perl for Windows, Mac, Linux, AIX, HP-UX & Solaris | ActiveState


Perlと書かれたところをクリックして Active Perlをさらにクリック(黄色いとこ)




Active Perl をクリックすると、右上の方にFree Downloadと出てくるのでクリック




あとは、自分のPCに合ったインストーラーを選択する
私の場合は Perl 5.14.2 for Windows(64-bit,x64)をダウンロートしました



保存場所は"C:\Perl64"となりました(自動的にPerl64というフォルダーが作られたよ)

次にPATHの設定をする
インストール時に自動的に追加されてるかもしれないけど一応確認

スタート→コントロールパネル→システム→システムの詳細設定→環境変数
PATHを選択して編集ボタンをクリック
私の場合Active Perlを保存した場所が"C:\Perl64"なので、PATHを

;C:\Perl64\bin

というカンジに追加
今まで書いてたやつはいじっちゃいけません
一番後ろに付け出すだけでOK



とりあえず環境は整ったので、
Hello Worldします

Perlリファレンスを見ながら
愛用エディタを開き、

#!/Perl64/bin/perl
print "Hello World";

と打ち込む

Perlの保存形式は.plなので、とりあえずファイル名をhello.plとでもしておきます
ファイルの保存先はC:\Perl64

コマンドプロンプトを開き、C:\Perl64へ移動
perl hello.pl と入力しEnterキーを ッターン!

出ました
これでようやくPerlデビュー


それでは早速togetterから必要な文字列をtextに出力します
こちらの記事を参考にさせていただきました
Togetter にまとめられた内容を TSV 化する Perl スクリプト - [ぴ](2011-03-27)


実行してみると、色々エラーはいたので調整
あとPerlCSVファイルをつくってみることにしたので色々付け足した

foreach my $item_tree ($tree->look_down('class' => 'list_item')) {
	my $tweet = $item_tree->look_down('class', 'tweet')->as_text;
	my $date_usuer = $item_tree->look_down('class', 'status_right')->look_down('_tag', 'div')->as_text;
print join("\t", "[qw/",$date_usuer,$tweet,"/],"), "\n";
}

よし、出てきた、けどちょっと困ったことが

正規表現でもっときっちり定義出来るのだろうけど、
togetterページの問題で時間と日付いっぺんに出てくるのがなんとももどかしい
デベロッパーツールを開いて確認

なるほどこういうことですか
腹が立つので時間があったらどうにかしたい


あと実行するとき、togetterにまとめたtweet数が多すぎてページが分割されるので
追記モードでくっつける必要があった

perl togetter2tsv.pl http://togetter.com/li/335253?page=2 >> chi2012fun.txt



Perl初めてやってみたけど、なんだかかわいい
$がなんともかわいらしい
Java正規表現はもうメタリックな銀色イメージだけど
Perlのイメージは、やっぱりホワイトかな!