while () { if ($_ =~ /nodeName.equals/) { my $line1 = $_; my $line2 = ; my $line3 = ; if ($line3 =~ /new Integer/) { chomp($line1); $_ = "$line1$line2"; s/nodeName.equals\("(.*)"\).*product\.(.*)\(/msg.isSetField($1.FIELD)) {\n product.$2(msg.getInt($1.FIELD))\;/; print $_; } elsif ($line3 =~ /new Double/) { chomp($line1); $_ = "$line1$line2"; s/nodeName.equals\("(.*)"\).*product\.(.*)\(/msg.isSetField($1.FIELD)) {\n product.$2(msg.getDouble($1.FIELD))\;/; print $_; } else { print $line1; print $line2; print $line3; } } else { print $_; } }