use strict; use warnings; my $converted; my $discarded; my $holder; my @report; $converted=0; $discarded=0; sub report { my ($original, $result) = @_; $original =~ tr/\n//d; if (defined $result) { $result =~ tr/\n//d; push @report, "$original -> $result\n"; $converted++; } else { push @report, "$original\n"; } } while () { my $line = $_; if ($line =~ /\bMOVE\s(\d+)\sTO\s(\w+)/) { $line = "$2 := $1;\n"; report ($_, $line); } elsif ($line =~ /\bDISPLAY\s'([^']*)'\./) { $line = "PUT(\"$1\");\n"; report ($_, $line); } elsif ($line =~ /\bDISPLAY\s(\w+)\./) { $line = "PUT($1);\n"; report ($_, $line); } else { $discarded++; } print $line; } report ("No. of Keywords Converted: $converted\n"); report ("No. of Keywords Discarded: $discarded, \n"); print "------------------8<----------------------\n"; print @report; __DATA__ MOVE 4 TO INT1. DISPLAY 'MEMBERS OF THE GROUP'. DISPLAY INT1. ADD 5 TO INT4 #### INT1 := 4; PUT("MEMBERS OF THE GROUP"); PUT(INT1); ADD 5 TO INT4 ------------------8<---------------------- MOVE 4 TO INT1. -> INT1 := 4; DISPLAY 'MEMBERS OF THE GROUP'. -> PUT("MEMBERS OF THE GROUP"); DISPLAY INT1. -> PUT(INT1); No. of Keywords Converted: 3 No. of Keywords Discarded: 1,