> You want to extract numbers from an array
> if they are > 4 and put an 'a'-letter after them.

Try this...

# tested
@values = (1,3,5,7);
@bigger_than_4 = map {$_.'a'} grep {$_>4} @values;
print "@bigger_than_4";

> You need to escape a loop with a value.

Not sure I understand what you are trying to accomplish, but this is the
equivalent of your Perl version and is as short as your proposed syntax.

while (<FH>) {
  next unless /stop/;
  #somthing
  last;
}

Rob


-----Original Message-----
From: Ville Jungman [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 25, 2003 8:25 PM
To: [EMAIL PROTECTED]
Subject: Should loops return a value?


Shortly, I think it might be good if loops (etc.) could return values.



Example 1: Retnext (like 'return next' borrowed from pl/sql)
You want to extract numbers from an array if they are > 4 and put an 
'a'-letter after them.

   @values=(1,3,5,7);
   @bigger_than_4=                           # get an array from loop
      foreach $value(@values) {
         retnext $value."a" if $value > 4;   # return value from loop if > 4
      }
   ;



Example 2: Retlast (== perl 'last'-command with a value)

You need to escape a loop with a value. Familiar way:

   while(<FH>){
      if(/stop/){
         $array_terminated='true';
         last;
      }
   }
   if($array_terminated){
      # something
   }

This could be written as:

   if(
      while(<FH>){
         retlast if /stop/;                  # returns $_ by default
      }
   ){
      # something
   }



So, not very conserverite but think what all you could do with this.
And please, let me know what you think about this. Crap?

---

ville jungman, 2 laureston crescent, tower, blarney, cork, ireland
tel. + 353 - 21 - 451 6847, http://www.kolumbus.fi/vilmak
usko Herraan Jeesukseen, niin sinä pelastut. (apt. 16:31)

_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail


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

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

Reply via email to