$infile = $ARGV[0]; open(IN, "<$infile"); open(OUT, ">temp.out"); { local $/ = ''; print OUT scalar ; for () { s@([\d\D]*?)@ my $var = $1; $var =~ s#([a-z|A-z]+)#$1#g; $var =~ s#<(.*?)>#<$1>#g; $var =~ s#(.*?)>##g; $var =~ s#&(.*?)(.*?)(.*?)\;#&$1$2$3;#g; $var @e; print OUT } } close(IN); close(OUT);