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/