Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

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 "\nhttp://website.org/session2?ip=$i&email=you%40there.c +om\n"; }
this is the output from that:

http://website.org/session2?ip=x.x.x.x
&email=you%40there.com

http://website.org/session2?ip=x.x.y.y
&email=you%40there.com

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 "\nhttp://website.org/session2?ip=$_&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 "\nhttp://website.org/session2?ip=$_&emai +l=you%40there.com\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[.+][http://website.org/session2?ip=${&}&email=you%40there.com]g; print;

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2023-06-08 14:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How often do you go to conferences?






    Results (32 votes). Check out past polls.

    Notices?