#!/usr/local/bin/perl use Jcode; #### page defines $SOURCE = '/home/sharl/html/d/hina.txt'; $DEST = '/home/sharl/html/d/watchlynx.rdf'; $match_pattern = '(.*?)(.*?)
'; my $publisher = 'しゃある'; my $creator = 'sharl @ hauN.org'; my $pageuri = 'http://sharl.hauN.org/d/wl.html'; my $pagedescription = '俺用'; my $pagetitle = 'わっちりんく(す)'; my $copyright = 'Copyright (c) 1995-2004 Sharl'; #### top page time my ($sec, $min, $hour, $mday, $mon, $year) = localtime($mtime = (stat $SOURCE)[9]); $year += 1900; $mon++; my $dcdate = sprintf("$year-%02d-%02dT%02d:%02d:%02d+09:00", $mon, $mday, $hour, $min, $sec); my $rdfhead = < $pagetitle $pageuri $pagedescription ja-jp $copyright $dcdate $publisher $creator RDFHEAD ; open(OUT, ">" . $DEST); print OUT jcode($rdfhead)->utf8; &get_items(); my $idx = 0; foreach (sort NumSort @targets) { print OUT jcode(qq| \n|)->utf8; last if (++$idx == $max_items); } print OUT " \n"; print OUT " \n"; print OUT " \n"; $idx = 0; foreach (sort NumSort @targets) { my $itemblock = < $caption{$_} $_ $caption{$_} $dcdate{$_} $author{$_} ITEM ; print OUT jcode($itemblock)->utf8; last if (++$idx == $max_items); } print OUT "\n"; close(OUT); utime $mtime, $mtime, $DEST; exit; ############################################################ sub get_items { open(FD, $SOURCE); while () { if (m|$match_pattern|io) { my ($lyear, $lmon, $lmday, $lhour, $lmin, $ref, $title, $author) = ($1, $2, $3, $4, $5, $6, $7, $8); my $dcdate = sprintf("$lyear-%02d-%02dT%02d:%02d:00+09:00", $lmon, $lmday, $lhour, $lmin); $title =~ s/™/(TM)/g; $author =~ s/♪//g; $author =~ s/^[\s ]+//g; push(targets, $ref); $caption{$ref} = $title; $dcdate{$ref} = $dcdate; $author{$ref} = $author; } } close(FD); } sub NumSort { return $dcdate{$b} <=> $dcdate{$a}; }