Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

formatting print output from array

by stevenrh (Beadle)
on Sep 29, 2004 at 17:05 UTC ( #395060=perlquestion: print w/replies, xml ) Need Help??

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

Hello All, I am using an array of IP addresses to plug into a link, but when i do so, the link is segmented into 2.

I would like the link to be contiguous, ands in the future i would like to set up a socket that connects and and does an http get with the link.
(i want to autmoate my abuse duties, ie: blacklist removal, without so many clicks and Alt-Tabs) Any help would be appreciated. below is the code and the output......thx

#!/usr/bin/perl -w $file = '/home/steven/x.x-sort'; open(INFO, $file); @lines = <INFO>; close(INFO); my $i; foreach $i(@lines){ print "\n$i&email=you%40there.c +om\n"; }
this is the output from that:

Replies are listed 'Best First'.
Re: formatting print output from array
by Anonymous Monk on Sep 29, 2004 at 17:07 UTC
      thanks mate, but that opens another can of worms. now all lines are together,and "\n" no longer works!!!
Re: formatting print output from array
by Eimi Metamorphoumai (Deacon) on Sep 29, 2004 at 18:04 UTC
    The problem is that when you read in the lines, each ends with a newline. So you have to remove those with chomp. I'm guessing the problem you had was running chomp on your output, not on your input.

    Incidentally, unless there's a reason you need all of the input in an array, you might find it a lot more efficient to deal with each line as it comes in. That is,

    #!/usr/bin/perl -w use strict; my $file = '/home/steven/x.x-sort'; open(INFO, $file) or die "Couldn't open $file: $!"; while (<INFO>){ chomp; print "\n$_&email=you%40there.c +om\n"; } close(INFO) or die "Error writing $file: $!";
    If for whatever reason your code is more complicated and you really do need the @lines array, you need to chomp it, as in chomp(@lines = <INFO>), which will remove the trailing newlines from each line.
      You can golf the loop down like this:
      while (chomp(<INFO>)){ print "\n$_&emai\n" }
      require General::Disclaimer;

      All code, unless otherwise noted, is untested

      "All it will give you though, are headaches after headaches as it misinterprets your instructions in the most innovative yet useless ways." - Maypole and I - Tales from the Frontier of a Relationship (by Corion)

        Or golf the whole thing to:

        (@ARGV, $/) = '/home/steven/x.x-sort'; $_ = <>; s[.+][${&}&]g; print;

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://395060]
Approved by Arunbear
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2023-09-29 00:35 GMT
Find Nodes?
    Voting Booth?

    No recent polls found