Chas. Owens wrote:
> On Thu, Apr 3, 2008 at 8:19 PM, Rob Dixon <[EMAIL PROTECTED]> wrote:
>> Chas. Owens wrote:
>>  > On Thu, Apr 3, 2008 at 7:29 PM, Ryan <[EMAIL PROTECTED]> wrote:
>>  >> I know they are both the same, I just want to know why we have both.
>>  > snip
>>  >
>>  > Because originally they meant different things.  The for loop was a
>>  > c-style loop and the foreach loop was an iterator.  Eventually it was
>>  > realized that the iterator style was a better loop and typing foreach
>>  > every time was annoying, so they made for able to do both types of
>>  > loops.  In order to keep as much code running as possible the foreach
>>  > loop was kept.  Just ignore foreach.
>>
>>  Hmm. IYHO. It sounds as though you would like to contract all of the
>>  Perl language words into single characters if possible to save typing.
>>
>>  Although 'foreach' is more useful, I think it's it's far more likely
>>  that someone realized that the two could be distinguished by context and
>>  needn't have different symbols, so the two were made equivalent.
> snip
> 
> No, not the entire language, just those parts that are used most
> often, like say regexes.  It is called Huffman encoding* and it is a
> large factor in the design of the Perl language.  Things you do often
> should be short and sweet.
> 
> snip
>>  I preserve 'foreach' to iterate over a list, and use 'for' for C-style
>>  for loops and single elements, like:
>>   for ($string) {
>>     s/^\s+//;
>>     s/\s+$//;
>>   }
>>
>>  My rule: use the one that best describes in English the function it's
>>  performing.
> snip
> 
> In that case, you should be using given () instead of for (), at least
> in Perl 5.10 and above.
> 
> * Note, this is not real Huffman encoding, just Larry Wall's version of it.

Huffman encoding is a compression algorithm, used in GIF files if I
remember correctly. It's not relevant to human-readable text. If you're
anxious to make your programs as quick to type as possible then you
should start by removing all whitespace.

Rob

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to