
Perlでは、リファレンスが使えることが、大人のプログラマーへの一つの関門と言われているようです。
私も、例に漏れず、リファレンスを理解するのに少し時間がかかりました。ようやく、最近、理解し少し使えるようになってきました。
リファレンスを使えるようになったことで、最もよく使うのが二次元配列です。
大量のデータがcsvファイルに格納されていることはよくあります。ASPから提供されているもの、自分でこつこつ作ったもの、外注したものなど。
何にせよ、大量の有益なデータさえ手元にあれば、それを二次元配列に取り込んで、大量のページを有するサイトを一瞬で生成することができます。
以下は、csvファイルから、二次元配列にデータを取り込むためのサンプルコードです。もっといい方法を知っている方がいればぜひ教えてください。力を付けるために、自分で書いたコードをどんどん公開していこうと思っています。
#! /usr/bin/perl -w
use strict;
my @elements = ();
my @data = ();
my $i = 0;
while (<>) {
chomp;
@elements = split(/,/);
for (0..@elements) {
$elements[$_] =~ s/"(.*?)"/$1/ig;
}
for (0..@elements) {
$data[$i]->[$_] = "$elements[$_]";
}
++$i;
}
ダイヤモンド演算子を使っているので、実行する時に、取り込むファイルを引数として設定します。
最初のforブロックでは、正規表現を使ってダブルクォーテーションを取り除き、次のforブロックで2次元配列に格納しています。
後は、好きなようにHTMLファイルに出力すれば1万ページのサイトが一瞬で完成です。
プログラミングの勉強を始めてから、仕事の効率が劇的に改善にしました。
以前は、手をつけることができなかったような大量のデータを、簡単に扱えるようになりつつあります。
実は、スパイダーも実験的に飛ばして、いろんなサイトからデータを収集しています。データを自由自在に支配できるようになれば、おもしろくて仕方ないでしょうね。
オライリーの「詳説正規表現」の「はじめに」の部分に、「正規表現をマスターすることは、自分のデータを支配することなのだ。」と書いてありました。
全くそのとおりだと思います。
↓詳説 正規表現
トラックバックURL: http://www.sigmadesign.co.jp/ja/mt-tb.cgi/63
コメントする