develooper Front page | perl.perl5.porters | Postings from November 1999

Re: [ID 19991119.003] chomp() can be confusing

Thread Previous | Thread Next
From:
John Macdonald
Date:
November 21, 1999 20:59
Subject:
Re: [ID 19991119.003] chomp() can be confusing
Message ID:
199911220436.XAA18238@elegant.com
Nick Ing-Simmons <nick@ing-simmons.net> writes:
|| Tom Christiansen <tchrist@jhereg.perl.com> writes:
|| >>: I expect chomp() to remove one and only one terminating instance of the
|| >>: precise string to which $/ has been set; no more, no less.  What were
|| >>: you expecting?
|| >
|| >>I expect people to expect Perl to do the right thing.
|| >
|| >And that would be what, sniff around the stdio buffer the first time you
|| >play with it and figure out what it smells like?
|| 
|| That is far from daft. sv_gets() (the internals of readline) would know 
|| what it had used to find the end of the line. It could leave the 
|| information around for chomp to use.

But as soon as you have a program that opens multiple files of
differing formats, this breaks down.  You end up with taint-like
tracing of strings to track which form of file each string came
from.

Which means that...

|| But the "right thing" is 
|| just to return \n as a logical newline however it was represented in the 
|| buffer (unless in binmode of course). Then chomp'ing \n is fine.

is really a much better choice.  That just leaves the issue of
determining the right filtering to do for an output file so that
it matches the input file it is derived from or the target it is
being written to or whatever is the most significant issue -
which the programmer will have to deal with.

--
John Macdonald     jmm@jmm.pickering.elegant.com

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About