in reply to Compound statements within the conditional (ternary) operator

The basic problem is that you're trying to give  ?: a statement where the operator expects an expression. Try something like these:

c:\@Work\Perl\monks>perl -wMstrict -le "my $count; F(); ;; $count = 0; F(); ;; sub F { defined $count ? do { print '=' until $count ++ == 5; } : print 'Undefined count' ; } " Undefined count = = = = = c:\@Work\Perl\monks>perl -wMstrict -le "my $count; F(); ;; $count = 0; F(); ;; sub F { print defined $count ? '=' x 5 : 'Undefined count'; } " Undefined count =====
The second example does not keep track in  $count of the number of  '=' characters printed and you may need this for some reason, but if you don't, the second example is the way I'd go.

Update: If you do want to keep track of the number of things printed, here's a variation on the second method:

c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my $count; F(); dd $count; ;; $count = 0; F(); dd $count; ;; sub F { print defined $count ? '=' x ($count += 5) : 'Undefined count'; } " Undefined count undef ===== 5


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