just printing the value of the assignment is normally no different from just printing the rhs, so what's the point?
It's all about context. Just print
ing the RHS evaluates it in list context. The assignment to $=
(an unused global variable) forces the assignment to occur in scalar context.
And there's the trick: evaluating a list assignment in scalar context returns the number of items that are (or would be) assigned.
That is why this snippet works to print the number of lines of input.
The 6th Rule of Perl Club is -- There is no Rule #6.