http://qs321.pair.com?node_id=1126274

sumathigokul has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,

Good day to all...

I have four input files as follows.

XOR_portmap file is as follows m : XOR2 port map (A=> in1, B=> enable_c, Y => output);
uut_names file is as follows M1 M2 M3
nets file is as follows a_c b_c c_c
enabled_nets file is as follows a_e b_e c_e

My perl script has to read XOR_portmap file and write to XOR_portmap_nets with substitution in for loop. i.e it should substitute m in XOR_portmap file by 1st, 2nd, 3rd element of uut_names and in1 by 1st, 2nd, 3rd element of nets_names and output by 1st, 2nd, 3rd element of enabled_nets...

Here is the code i wrote and the output file it generates....i attached my expected output file also... Correct the mistake in the code monks... Thank you all...

use strict; use warnings; open (IN1, "<XOR_portmap.txt") or die; open (IN2, "<uut_names.txt") or die; open (IN3, "<nets.txt") or die; open (IN4, "<enabled_nets.txt") or die; open (OUT, ">>XOR_portmap_nets.txt") or die; my @uut_names = <IN2>; my @nets = <IN3>; my @enabled_nets = <IN4>; chomp @uut_names; chomp @nets; chomp @enabled_nets; while (<IN1>) { foreach my $i ( 0..$#nets ) { print OUT if ((s/m/$uut_names[$i]/) && (s/in1/$nets[$i]/) && ( +s/output/$enabled_nets[$i]/)); } } close (IN1); close (IN2); close (IN3); close (IN4); close (OUT);

XOR_portmap_nets file generated for this code is as follows..

M1 : XOR2 port map (A=> a_c , B=> enable_c, Y => a_e );

One more question is, why is it doing each substitution at newline only, instead of writing it as M1: XOR2 port map (A=> a_c, B=> enable_c, Y => a_e); (in single line)

But, i want XOR_portmap_nets file (my expected output file) as follows..

M1 : XOR2 port map (A=> a_c, B=> enable_c, Y => a_e); M2 : XOR2 port map (A=> b_c, B=> enable_c, Y => b_e); M3 : XOR2 port map (A=> c_c, B=> enable_c, Y => c_e);