Question on "is chomped"

Skip to first unread message

Joshua Gatcomb

May 12, 2005, 2:52:01 PM5/12/05
While E02 states that "is chomped" sets the chomped property of
afilehandle, I didn't find any detailed specifications in any of the
As or Ss.

So - is "is chomped" always the equivalent of:

while ( <FH> ) {

For instance - you have opened the file rw

Or, the idea of having mutator and non-mutator versions of chomp (and
other functions) have been kicked around the list.

Any definitive word yet?

Joshua Gatcomb
a.k.a. L~R

Larry Wall

May 13, 2005, 12:10:37 AM5/13/05
On Thu, May 12, 2005 at 02:52:01PM -0400, Joshua Gatcomb wrote:
: While E02 states that "is chomped" sets the chomped property of

There isn't really an "is chomped". If you set the line terminator
for a filehandle, it marks the input strings as to where it thinks
the the line should be chomped (which can vary from line to line).
Then you can either add an autochomp to the filehandle to automatically
remove that, or a subsequent call to ordinary chomp() removes that
sequence. If a line is not marked by an input layer, then chomp()
will presumably try to remove any standard line terminator.

In early Perl it was important to leave the newline on and chop/chomp
it later as a separate operation, but that's because of use of
while(<>) for input (at least until we snuck in the definedness hack).
In Perl 6 we're switching everyone to for =<> instead, which does
not depend on whether =<> returns a true/defined value, but only on
whether the generator has run out, so it's perfectly fine for the
input layer to autochop boring line terminators for you. It's really
only if you're interested in varying line terminators that you would
want to do your own chomp.

I call it "autochomp" on a handle, but it's probably just :chomp or
some such. We really haven't worked out how the IO layers interact
yet, or what their arguments are. Almost need a perl6-io list
to work all that out...


Reply all
Reply to author
0 new messages