#!/usr/bin/perl use strict; use warnings; if (defined $ARGV[0]){ open SOURCE, $ARGV[0] or die("$!"); } else{ print "please tell me a file to covert..." and die; } print ''; print "\n\n"; my $marker = 0; my $isheader = 0; my $isbreak = 0; my $paranumber; my $articlename; my $line; my $char; $char = getc(SOURCE); while ($char ne "\n"){ track($char); if (defined $articlename){ $articlename = "${articlename}$char"; } else{ $articlename = $char; } $char = getc(SOURCE); } $articlename = "${articlename}$char" if defined $articlename; print "
$articlename"; print ""; getc(SOURCE); while($char = getc(SOURCE)){ if($char eq "\n" and $marker == 1 and $isbreak == 0){ track("found break"); writeXMLelement($line,$isheader); $line = $char; $isbreak = 1; $isheader = 0; $paranumber++; } elsif($char eq "\n" and $marker == 2 and $isheader == 0){ track("found header"); $isbreak = 0; $isheader = 1; } elsif($char eq "\n"){ $isbreak = 0; track("found newline"); $marker++; $line = "$line " unless (!defined $line); } elsif($char =~ /[\w\s\d\.\,\:\;\"\'\?\!\0]/){ $isbreak = 0; #track("found text"); $marker = 0; if (defined $line){ $line = "${line}$char"; } else{ $line = $char; } } else{ $isbreak = 0; track("text not found"); $marker++; $line = "$line " unless (!defined $line); } } sub writeXMLelement{ my $element = $_[0]; chomp $element; $element = reverse $element; chomp $element; $element = reverse $element; if ($_[1] == 0){ print "\n\n$element\n\n"; } elsif ($_[1] == 1){ print ""; print "\n\n"; print "$element\n"; } } sub track{ warn "\ntrack:$_[0] at $paranumber\n"; } print "\n"; print "\n
";