use strict; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Word'; my $htmltop = " "; my $htmltail = " "; my $infile = shift; my $tempfile = $infile; $tempfile =~ s/\./tmp\./; my $outfile = $infile; $outfile =~ s/.html?/.doc/; my $fhi; my $fht; open($fhi, "<", $infile) or die "Can't open input file"; open($fht, ">", $tempfile) or die "Can't open temp file"; print {$fht} $htmltop; while (my $line = <$fhi>) { print {$fht} $line; } print {$fht} $htmltail; close $fhi; close $fht; my $word = Win32::OLE->new('Word.Application'); my $doc = $word->Documents->Open($tempfile) or die "Dying $!"; $doc->SaveAs({FileName => $outfile, FileFormat => wdFormatDocument}); $doc->close(); $word->Quit();