http://qs1969.pair.com?node_id=395080


in reply to formatting print output from array

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.

Replies are listed 'Best First'.
Re^2: formatting print output from array
by radiantmatrix (Parson) on Sep 29, 2004 at 18:10 UTC
    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;