in reply to Re: while ()
in thread while ()

I don't believe that while(()) is an example of no expression. Rather, while(()) evaluates the condition (), a list of no elements. A list evaluated in scalar conext yields the last element, according to man perldata:
If you evaluate an array in scalar context, it returns the length of the array. (Note that this is not true of lists, which return the last value, like the C comma operator, nor of built-in functions, which return whatever they feel like returning.)
What's the "last value" of an empty list? Experiments indicate that it's undef, a false value, so the while-loop doesn't loop.