Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

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 (Archbishop) 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> < >

    update

    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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2019-07-18 19:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?