Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^2: Processing while reading in input

by onlyIDleft (Scribe)
on Sep 20, 2018 at 02:13 UTC ( #1222685=note: print w/replies, xml ) Need Help??

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

Thank you, tybalt89. Your code worked in terms of generating the expected output.

Could you please explain in detail the following 2 lines from your code? Thank you!

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

Replies are listed 'Best First'.
Re^3: Processing while reading in input
by AnomalousMonk (Chancellor) on Sep 20, 2018 at 03:47 UTC

    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://1222685]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (9)
As of 2019-07-16 16:17 GMT
Find Nodes?
    Voting Booth?

    No recent polls found