Juerd wrote:
> Scott Bronson skribis 2004-07-01 14:11 (-0700):
> > Juerd wrote:
> > > > > pray_to $_ ., then sacrifice <$virgin> for @evil_gods;
> 
> I meant it without "then", but apparently forgot to remove it.
> 
>     pray to $_ ., sacrifice <$virgin> for @evil_gods;

Strictly from a grammatical perspective, I'd be much more comfortable with
C<, then> instead of C<then> as the perl equivelent of the C-style comma:
have the "then" keyword change the preceeding comma from a list
constructor to an expression combiner.  From a parsing perspective,
though, this would be a nightmare.  

Actually, the whole purpose of the C-style comma is to allow you to place
multiple expressions in a place that's only designed to take one, such as
the various divisions within a loop control set ("loop ($i = 0, $j = 1; $i
< 10; $i++, $j*=2) {...}").  For something like this, you might be better
off doing something like

  last($a, $b, $c)

instead of

  $a then $b then $c

(where last is a sub that takes a list of arguments, evaluates them one at
a time, and returns the value of the last one).  Unfortunately, "last" is
already in use by perl; so you'd have to think up another name for the
sub, such as "final".  

If you're really enamoured with the infix operator syntax, consider this
possibility: 

  sub infix:-> ($before, $after) {
    $before;       # is this line redundant?  
    return $after;
  }
  print $a -> $b -> $c;   # prints $c

where C[->] is read as "followed by".  You could even set up a
right-to-left version, C[<-], but why bother?  

=====
Jonathan "Dataweaver" Lang


                
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 

Reply via email to