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.comThread Previous | Thread Next