--- Michael Lazzaro <[EMAIL PROTECTED]> wrote:
> 
> On Sunday, January 19, 2003, at 09:51  PM, Luke Palmer wrote:
> >> From: "Sean O'Rourke" <[EMAIL PROTECTED]>
> >> On Sat, 18 Jan 2003, Michael Lazzaro wrote:
> >>> So 'if' and friends are just (native) subroutines with prototypes
> 
> >>> like:
> >> IIRC it's not that pretty, unfortunately, if you want to support
> this:
> > That is not a problem:
> <snipped>
> 
> Yeah, a three-argument form would easily allow chaining.  But of
> course 
> it still doesn't do the appropriate syntax checking (C<else> outside
> of 
> C<if>, etc.).  (It's only speculation on our part, of course, but 
> Damian's response was quite intriguing -- he seemed to imply they had
> a 
> solution that would work.)

I'm not sure that there *IS* much appropriate syntax checking, but you
could (and, I suspect, MUST) easily implement this by constructing
reference objects. (There has to be some kind of stack...)

But consider:

print "foo" if ($bar);
print "baz" else;

*What about THAT, Mr. Fong?*

This looks to me like an infix operator, or a postfix one for else.


Also, the case of C<if> versus C<if-els...> is generally a
"separable-verb" problem:

log $user onto $system.

log $message to $stderr.

l2x = log 2 * log $x;   # Don't check my math, please. :-)


Is it worth handling this?

sub log($n) { ... }
sub log _ onto($user; &_ ; $machine) { ... }
sub log _ to($message; &_ ; $stream) { ... }

=Austin



Reply via email to