Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: print last array element without a new line

by ikegami (Pope)
on Oct 19, 2011 at 19:32 UTC ( #932481=note: print w/ replies, xml ) Need Help??


in reply to print last array element without a new line

Unless you're messing with $/ or $\, chomp will remove the newline, and there cannot possibly be two of them.

Your code does exactly what you say you want it to do.

while(<DATA>){ chomp(my $record = $_); my @field = split /\,/, $record; print "$field[0],$field[10],$values[0],$field[1],$field[2]\n"; } __DATA__ a,b,c,d,e,f,g,h,i,j,k a,b,c,d,e,f,g,h,i,j,k
a,k,,b,c a,k,,b,c

There's an empty field, but that's because I didn't give $values[0] a value. (In fact, I would get a warning with use warnings;.)


Comment on Re: print last array element without a new line
Select or Download Code
Re^2: print last array element without a new line
by sy (Initiate) on Oct 19, 2011 at 19:50 UTC
    Thanks for the check. And yet the code does NOT work. Against all expectation I continually get a new line after printing the last element of the array created by the split. I cannot find any explanation for why this might be occurring in any of my Perl books. I have read about $/ and $\ and checked through my code to ensure I didn't introduce some such change by a typo. So I'm left wondering how to solve the problem??? Anyone? The broader context may provide some hints: -the CSV files originate from LABVIEW -arrays of hashes are being used as a lookup table to link info from separate files. I'm tearing my hair out.
      Look at http://www.perlmonks.org/?node_id=791664
        Thank you kindly! That was it. One of my files was from a distinct source (CSV export from Apple Numbers) and hence had a different line separator. Changing the local definition of $/ fixed the problem. Thanks so much for your help!

        That means you had a carriage return in the middle of the line.

        A better solution would be to change

        chomp(my $record = $_);
        to
        s/\r?\n//; my $record = $_;
        or even
        s/\s+\z//; my $record = $_;

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2014-11-27 17:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (186 votes), past polls