#!/usr/bin/perl use strict; use warnings; use Symbol; use XML::Writer; my $filename = $ARGV[0]; my $fh = gensym(); open $fh, $filename or die $!; my $writer = new XML::Writer(DATA_MODE => 1, DATA_INDENT => 0); $writer->startTag("translate", filename => $filename); my $this_para = undef; while (my $line = <$fh>) { if ($line eq $/) { paragraph($this_para); $this_para = undef; next; } else { $this_para .= $line; } } if ($this_para) { paragraph($this_para); } $writer->endTag("translate"); $writer->end(); sub paragraph { my $p = shift; $writer->startTag("p"); $writer->startTag("orig"); print $/; $writer->characters($p); $writer->endTag("orig"); $writer->startTag("trans"); print $/; $writer->characters($p); $writer->endTag("trans"); $writer->endTag("p"); }