Steve Grazzini wrote:
> 
> On Mon, Sep 29, 2003 at 11:04:46PM +0300, Ville Jungman wrote:
> > This is real example from what i was doing yesterday:
> >   if($subs->anna_tilavuus($x+$lisax,$y+$lisay,$z) < 100){
> >      $subs->paivita($x);
> >      $udat{x}=$lisax;
> >      $udat{y}=$lisay;
> >   }elsif($subs->anna_tilavuus($x,$y+$lisay,$z) < 100){
> >      $udat{y}=$lisay;
> >   }
> >
> > If using return values, this could be wrote as:
> >   ($udat{x},$udat{y})=
> >      if($subs->anna_tilavuus($x+$lisax,$y+$lisay,$z) < 100){
> >         $subs->paivita($x);
> >         retlast($lisax,$lisay)
> >      }elsif($subs->anna_tilavuus($x,$y+$lisay,$z) < 100){
> >         retlast(undef,$lisay);
> >      }
> >   ;
> 
> You can do this already with "do" blocks.
> 
>   my $condition = 1;
> 
>   ($x, $y) = do {
>     if ($condition) { 42, 43 }
>     else            { 44, 45 }
>   };

You don't need a do block, the conditional operator can handle it.

@udat{ 'x', 'y' } = $subs->anna_tilavuus( $x + $lisax, $y + $lisay, $z )
< 100
                  ? do { $subs->paivita( $x ); ( $lisax, $lisay ) }
                  : $subs->anna_tilavuus( $x, $y + $lisay, $z ) < 100
                  ? ( undef, $lisay )
                  : ();


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to