Results for category "Perl"

[Perl]俺はActivePerlをやめるぞ!ジョジョーッ!!

WindowsでPerlと言えばActiveperlかCygwin+Perlでしたが、Strawberry Perlなるものがあるようなのでインストールしてみました。

ActivePerlはコンパイル環境がないので、XSモジュールのインストールにはVC++を別途インストールしないといけないが、それでもコンパイルでこける場合が多々あり、ppmからインストールする手法でした。

しかしStrawberry Perlはgccとdmakeというコンパイル環境込みでインストールされるので、CPANモジュールのインストールでこける事がほとんどありません。

ActivePerl+CPANで依存モジュールの多いMooseのインストールは失敗しましたが、Strawberry Perlだとサクッと入りました。

散々待たされた挙句、make NOT OKとか出ないから最高!

[Perl]アクセスログ解析に最低限必要なモジュール

アクセスログ解析をPerlで行う場合に最低限必要な(使っている)モジュールを列挙してみた。
基本的にツールレベルなら軽量モジュールを使うけど、これでできない事があれば上位のモジュールを使ってもいい。

1
2
3
4
5
6
use strict; # お約束
use warnings; # お約束
use CGI::Lite; # 検索ワードのデコードに使う
use DBIx::Simple; # ログそのものや集計結果をDBに登録する
use Encode; # 文字コード変換
use Text::CSV::Simple; # CSVファイルをまともにパースする

まったく同様の機能をJavaで書いてみたけど解析そのものは4倍くらい速かった。
ただJavaだと思い立ったらツール作成→実行ができないので、DB関連の所だけInline::Javaで呼び出すって方法がいいのかもしれない。
(やると誰もメンテナンスできなくなるのが難点。もう1人プログラマください・・・)

PCでEZweb公式サイトのカテゴリ順位を調べる

auのEZweb公式サイトのカテゴリで自社のサイトが何位なのか調べるために、わざわざ実機で調べていたけどau oneのPCサイトでEZweb公式サイトカテゴリが閲覧できた。

順位もちゃんと連動しているみたいなので、このページを自動で解析してやれば1つ定例作業が減る事になる。

着ムービー・着Flashの音楽カテゴリのサイト一覧を取得するPerlは以下のとおり。

1
2
3
4
5
6
7
8
9
10
use strict;
use warnings;
use utf8;
use Perl6::Say;
use URI;
use Web::Scraper;
 
my $uri = new URI('http://k-tai.auone.jp/ezweb/04/01/list_01.html');
my $res = scraper { process 'dt', 'sitename[]' => 'TEXT' }->scrape($uri);
do { s/^ *(.*?) .$/$1/; say } for @{$res->{sitename}};

Web::Scraperでdtタグに囲まれているサイト名を配列で取得して、前後の不要なスペースを除去するだけ。Windows環境で実行したら、行末によく分からん\x{00A0}が付いてたので、正規表現で消してお茶濁した。

もうちょっと改造して、自分のサイト名とマッチさせる処理入れたら順位も取れるけど、サイト数が多いカテゴリだと50サイトずつしか表示されないので後ろのページも取りに行くようにしなければいけない。

めんどくさいからまた今度。