use warnings; use Regexp::Common qw /comment/; while(){ my ($line, $simple, $RE, $tye) = ($_)x4; $simple =~ s#//[^\n]*$##s; $RE =~ s#$RE{comment}{Portia}#\n#; $tye =~ s# (^ (?: [^/'"]+ | '([^'\\]+|\\.)*' | "([^"\\]+|\\.)*" | (?