Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^2: Does problem is in the for loop???

by sumathigokul (Acolyte)
on May 11, 2015 at 09:39 UTC ( [id://1126286]=note: print w/replies, xml ) Need Help??


in reply to Re: Does problem is in the for loop???
in thread Does problem is in the for loop???

Here is the code....

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);

Replies are listed 'Best First'.
Re^3: Does problem is in the for loop???
by marto (Cardinal) on May 11, 2015 at 10:00 UTC

    Update: Ignore this post, see Re^4: Does problem is in the for loop???.

    Are you sure this is your code?

    print OUT if ((s/m/$uut_names[$i]/) && (s/in1/$nets[$i]/) && (s/output +/$enabled_nets[$i]/));

    You say that "it is writing first element alone in XOR_portmap_nets file" but there is no output being written to file here. There are a few issues here, the tutorial Basic debugging checklist mentions three questions which you need to understand:

    • Are you sure your data is what you think it is?
    • Are you sure your code is what you think it is?
    • Are you inadvertently ignoring error and warning messages?
      print OUT if ((s/m/$uut_names[$i]/) && (s/in1/$nets[$i]/) && (s/output/$enabled_nets[$i]/));

      there is no output being written to file here

      You are missing the while (<IN>) { ... } loop around this statement. print defaults to writing $_ when called without arguments or only a file handle.

      Stupid demo:

      >perl -E "open IN,'<','/etc/group'; open OUT,'>','/tmp/foo'; while (<I +N>) { print OUT if /adm/; } close OUT; close IN;" >cat /tmp/foo sys:x:3:root,bin,adm adm:x:4:root,adm,daemon disk:x:6:root,adm >

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

        Doh! Indeed I am, thanks for pointing this out. Another occasion where I need to take a step back and properly regulate my caffeine/blood level.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1126286]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2025-05-23 14:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.