use strict; use warnings; my $SOURCEFILE; my $TARGETFILE; my $REPORTFILE; my $converted; my $discarded; my $holder; my $titleid; print "Enter filename to convert: "; chomp($SOURCEFILE = ); print "Save to:"; chomp($TARGETFILE =); print "Save Conversion Report to:"; chomp($REPORTFILE =); open SOURCEFILE, '<', $SOURCEFILE or die "Can't open $SOURCEFILE: $!"; open TARGETFILE, '>', $TARGETFILE or die "Can't open $TARGETFILE: $!"; open REPORTFILE, '>', $REPORTFILE or die "Can't open $REPORTFILE: $!"; $converted=0; $discarded=0; sub reporting { print TARGETFILE $holder; print REPORTFILE " -> "; print REPORTFILE $holder; $converted++; } #Evaluate per line foreach my $line () { if ($line =~ /(\w+)/) { print REPORTFILE $line; #saves original value to reportfile $line =~ s//|/; $line =~ s/\n//g; $holder = $line; reporting; } elsif ($line =~ /(\w+)/) { print REPORTFILE $line; $line =~ s//|/; $line =~ s/\n//g; $holder = $line; reporting; } elsif ($line =~ /
(\w+)/) { print REPORTFILE $line; $line =~ s/
/|/; $line =~ s/\n//g; $holder = $line; reporting; } elsif ($line =~ /(\w+)/) { $discarded++; print REPORTFILE " "; print REPORTFILE $line; } } print TARGETFILE "^\n"; # eof line marker print REPORTFILE "No. of fields Converted: "; print REPORTFILE $converted, "\n"; print REPORTFILE "No. of fields Discarded: "; print REPORTFILE $discarded, "\n"; close SOURCEFILE or die "Can't close: $!"; close TARGETFILE or die "Can't close: $!"; close REPORTFILE or die "Can't close: $!";