Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re^3: Processing while reading in input

by AnomalousMonk (Chancellor)
on Sep 20, 2018 at 03:47 UTC ( #1222690=note: print w/replies, xml ) Need Help??

in reply to Re^2: Processing while reading in input
in thread Processing while reading in input

Let me presume to answer for tybalt89.

my ($cluster, $member) = split;

This depends on default behavior of split, and is equivalent to
    my ($cluster, $member) = split ' ', $_;
The  ' ' split pattern is a special case explained in split docs.

print $cluster eq $member ? "\n" x ($. > 1) : ', ', $member;

This is a bit more tricksy. From the inside out:

  • ($. > 1)    $. is input line counter (update: see perlvar).  ($. > 1) evaluates to either '' (empty string) or 1 and will be 1 for every input line after the first.
  • "\n" x ($. > 1)   Repeats a newline zero times for the first line of input (empty string silently promoted to 0 in this special case), once for every subsequent input line.
  • $cluster eq $member ? Newline_or_Nada : ', '   Ternary expression. If  $cluster eq $member true, output newline for every input line after the first (see previous item); if false, output  ', ' string.
  • print Ternary_Expression, $member;   print result of ternary expresssion (see previous item), then  $member string.
And that's all there is to it (I think).

Update: Minor wording changes.

Give a man a fish:  <%-{-{-{-<

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2019-07-19 02:11 GMT
Find Nodes?
    Voting Booth?

    No recent polls found