in reply to
(tye)Re2: crafting a decent CLI
in thread crafting a decent CLI
Actually, you don't have to parse the rest of the do block to figure out what is going on. Once you see
";\ndo {\n" you know (from the ";" and newlines) that it isn't a (sensible) conversion of a block to an
expression and (from the "{") that it isn't "do file".
I do not quite agree with that. You do know the expression
modifiers, don't you?
EXPR if EXPR and
EXPR for EXPR etc are quite common in Perl.
Every now and then you want to do two or more things in
the first expression.
EXPR, EXPR if EXPR
sometimes works, but sometimes it won't. So you use
do {EXPR; EXPR} if EXPR. That do is followed
by a '{' and typically preceeded by a ";\n". And hopefully
you aren't giving special meaning to the newline. ;-)
-- Abigail