Are you saying that instead of distinguishing between
foo and my foo,
the distinction should be between
everybody's foo and foo
for some spelling of everybody's
?

>----- ------- Original Message ------- -----
>From: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Sent: Sun, 15 May 2005 14:43:00
>
>On Mon, 16 May 2005 01:05:28 +0900
>Joel Rees <[EMAIL PROTECTED]> wrote:
>
>> The bug/feature is that you can't declare
>variables unless you
>> declare them either "local" (which is usually not
>what you want) or
>> "my" (which _is_ what you usually want). The
>buggy aspects of this
>> feature are mostly relieved by "use strict" and
>other pragma.
>> 
>> (Do NOT forget to "use strict" !)
>
>I am not commenting on any buggy aspects of this
>feature, I am
>commenting on this feature itself.  Use strict
>doesn't change the
>scoping rules of perl, having to use "my" at all is
>the problem, its
>backwards and stupid when variables should be
>assumed to be lexical
>scope.
>
>> Perl also provides for passing parameters as a
>hash instead of an 
>> array. The good part of that is that if you pass
>red, green, and
>> blue, you don't have to remember whether red,
>green, or blue came
>> first in the list. The bad part of this is left
>as an exercise for
>> the reader. (I'd give an example, but my head is
>so full of Java
>> these days I couldn't guarantee getting the
>syntax right.)
>
>You don't have to remember the order that args are
>passed with normal
>languages where functions take named args either.
>
>> >  With perl you can
>> > only pass an array as a reference, if you want
>a second array you
>> > have to copy the one passed as a reference
>manually in the sub.
>> 
>> Not exactly true, although getting the hang of
>passing arrays can
>> take some time. (And reading code that does it
>the right way can be 
>> something of an adventure, especially for
>programmers who are mostly 
>> experienced in descendants of Algol.)
>
>I'm no perl expert, I'm just going by the perl
>documentation here where
>it says that you can only pass arrays and hashes as
>references.  Then
>you need to make a new copy of that array or hash
>yourself inside the
>sub if you don't want to be changing the original
>one.  I'm not saying
>its that big a deal, its just inflexible and a
>waste of programmer time.
>
>> > course, if all you want is an array of args,
>languages that let you
>> > declare arguments to functions can give you
>that just fine.  Perl is
>> > all about being flexible and saving programmer
>time, yet something 
>> > basic
>> > like functions is implimented in an inflexible
>way that requires
>> > programmers to spend extra time checking args. 
>Declaring args is
>> > both more flexible, and a time saver.
>> 
>> Not true. The problem is not inflexibility, but
>once again too much 
>> flexibity. Of the several ways to solve the
>problems of passing 
>> parameters in perl, the one that is closest to
>traditional procedure 
>> parameter lists is perhaps a bit too spare in its
>requirements.
>
>Yes true, you can handle every arg passing
>situation perl is capable of
>in a language using named args, as well as
>situations perl doesn't
>handle without you doing it yourself in the first
>couple lines of your
>sub.  Therefore named args is more flexible, and
>saves programmer time.
>Notice that perl 6 is supposed to be fixing some of
>this stuff, so its
>obviously not just me that thinks there's problems
>here.
>
>Adam

Reply via email to