ISBN-10ISBN-13相互変換とハイフン編集をするjavascriptの生成実験その2

大分それっぽい感じになってきたので、途中経過がてら

#!/usr/bin/perl
use lib '/home/natu-n/perl/lib/perl5/site_perl/5.8.8';
use lib '/home/natu-n/local/lib/perl5';
use strict;
use warnings;

use LWP::UserAgent;
use JSON;
$JSON::Pretty = 1;
$JSON::Indent = 4;
$JSON::Delimiter = 2;

my $resp = LWP::UserAgent->new->get(
  'http://www.isbn-international.org/converter/ranges.js');
$resp->is_success
  or die;

my $tbl = [];
my $js = $resp->content;
my $i = 0;
	map {
		my $max = (split /-/)[1];
		$tbl->[$i][0] = substr(("$1" . "$max" . "9999999999"), 0, 10);
		$tbl->[$i][1] = length($1);
		$tbl->[$i][2] = length($max);
		$i++;
		} split /;/, $3
while $js =~ /gi\.area(\d+)\.text="(.+)";\ngi\.area\d+\.pubrange="([\d\-;]+)";/g;
print objToJson($tbl, {keysort => 1});
  • とりあえず標準出力にJSONを吐くところ迄、実際には下記のJSもあわせて前後に吐かないとダメですがp
function tblMake(){
	var _ranges = eval('(' +
		+ ')');
	flgTblMake = 1;
	_TblL = _ranges.length;
}
  • 特に変わらない部分を別ファイルにしておいて、このスクリプトの結果とマージするところ迄は明日暇なときに作ってみます

雑記

実際の命令がwhileより前の行というのがまだ馴染めない
あと、よくよく考えたらcgi版でデータとロジックを別ファイルにしたら、呼び出すたびに毎回データを読み込むので意味が無い事に気がついた