Revision 364 (by dpavlin, 2004/06/16 23:09:02) migration script from WebPAC v1.x field format (in format 999a) to
new format, more ISIS like, and used by eval v999^a
#!/usr/bin/perl -w

use strict;

foreach my $file (@ARGV) {

	open(XML,$file) || die "can't open '$file': $!";

	my $xml;
	while (<XML>) {
		$xml .= $_;
	}

	close(XML);

	my $new_xml;

	sub to_v {
		my ($f,$sf) = @_;
		my $out = "v".$f;
		$out .= "^".$sf if ($sf);
		return $out;
	}

	while ($xml =~ s/(^.+?<isis[^>]*>)(.+?)(<\/isis>)//s) {
		my ($pre,$data,$post) = ($1,$2,$3);
		$data =~ s/(\d{3})([\w\d]?)/to_v($1,$2)/esg;
		$data =~ s/v(v\d{3}\^\w)/$1/gs;
		$new_xml .= $pre.$data.$post;
	}
	$new_xml .= $xml;

	open(XML,"> $file-new") || die "can't create '$file-new': $!";
	print XML $new_xml;
	close(XML);

	rename "$file-new","$file" || die "can't update original file '$file' with '$file-new': $!";

	print "$file converted\n";
}