あっという間の十年ブログ【Ruby篇】

"詮ずるところ#{プログラミング}は、ただ年月長く倦まずおこたらずして、はげみつとむるぞ肝要にて、学びやうは、いかやうにてもよかるべく、さのみかかはるまじきことなり。いかほど学びかたよくても、おこたりてつとめざれば、功はなし。また、人々の才と不才とによりて、その功いたく異なれども、才不才は、生まれつきたることなれば、力に及びがたし。されど、大抵は、不才なる人といへども、おこたらずつとめだにすれば、それだけの功は有る物なり。" - 本居宣長

正規表現の練習

AKB48総選挙2012開票結果からメンバー名を(スペースを除いて)取得する正規表現の練習。

use strict;
use warnings;
use LWP::Simple;

my $html = get('http://www.sponichi.co.jp/entertainment/akb48/rank/2012/0606index.html');
my @l = $html =~ m{<a.*?href="/entertainment/akb48/profile/.*?">\s(.*?)\s(.*?)</a></td>}g;
my $count;
my $rank;

open(my $out, ">", "akb.txt") or die("could not open file.");
foreach my $_ (@l) {
	$count++;
	if ($count % 2) {
		$rank++;
		print $out "$rank $_";
	} else {
		print $out "$_\n";
	}
}

printの度に Wide character in print at akb.pl line (17|19). ってメッセージが出るけどなんとかなる。
.*? が万能すぎて練習にならない。


おまけ
死ぬほどどうでもいいAKBの身長分布