Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: Splitting in while loop

by perlfan (Vicar)
on Oct 12, 2021 at 16:09 UTC ( [id://11137448]=note: print w/replies, xml ) Need Help??


in reply to Re: Splitting in while loop
in thread Splitting in while loop

In non-slurp mode, this works via assignment using the diamond operator (<>) - or just the same if you open an file handle, $FH:
# test.pl while (my $line = <>) { chomp $line; print qq{$line\n}; # yes I know, pointless use of chomp }
> perl test.pl < test.pl # test.pl while (my $line = <>) { chomp $line; print qq{$line\n}; # yes I know, pointless use of chomp }
Similarly, you could do something destructive with pop or shift, like,
while (my $item = pop @my_array) { # do stuff with $item }

Replies are listed 'Best First'.
Re^3: Splitting in while loop
by haukex (Archbishop) on Oct 12, 2021 at 16:41 UTC
    while (my $line = <>) ... Similarly, ... while (my $item = pop @my_array)
    use warnings; use strict; while (my $line = <DATA>) { chomp $line; print "<$line>\n"; } my @array = ("Foo","0","Bar"); while (my $item = pop @array) { print "[$item]\n"; } __DATA__ Hello 0 World

    Outputs:

    <Hello> <0> <> <World> [Bar]

    I'd call that a pretty serious caveat. As per I/O Operators, the first is equivalent to while ( defined( my $line = <> ) ), and readline returns undef at EOF, while the second one will stop at any false value, and arrays can contain undefs too.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2024-04-24 03:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found