Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^2: truth in while condition

by ikegami (Pope)
on Oct 02, 2018 at 02:55 UTC ( #1223379=note: print w/replies, xml ) Need Help??

in reply to Re: truth in while condition
in thread truth in while condition

Even if it wasn't magical, it still wouldn't stop at that line. The two-character string being returned, 0␊, is true. The magic only matters when the last line of the file consists of a 0 without a terminating Line Feed. (It could also happen when $/ = \1;.)

(Oops, the main point of this has already been mentioned a couple of times below, though this post still brings in new information.)

Replies are listed 'Best First'.
Re^3: truth in while condition (updated)
by LanX (Cardinal) on Oct 02, 2018 at 12:32 UTC
    (solved, see update)

    > (It could also happen when $/ = \1; )

    This splits on single characters, including \n.

    But I couldn't find this behavior documented, neither in perlvar#$INPUT_RECORD_SEPARATOR nor readline

    use strict; use warnings; use feature 'say'; $/ = \1; while ( $_= <DATA>) { say "<$_>"; } __DATA__ 1 0 345


    <1> < > <0> < > <3> <4> <5> < >


    oops I misread \1 as "\1" (ASCII 01), but it's a ref to literal 1, so this from perlvar applies:

    > Setting $/ to a reference to an integer, scalar containing an integer, or scalar that's convertible to an integer will attempt to read records instead of lines, with the maximum record size being the referenced integer number of characters.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2020-08-07 04:12 GMT
Find Nodes?
    Voting Booth?
    Which rocket would you take to Mars?

    Results (43 votes). Check out past polls.