Nathan Wiger wrote:
> 
> "David L. Nicol" wrote:
> >
> >         s/x/5/; # this is still going to replace
> >                 # all the eckses in $_ with fives.
> 
> Why? This is an arbitrary decision if you've declared variables to be
> barewords.

Misstating my position, when I take one, is and will continue to be
a way to get a rise out of me.  This may be a character flaw on my part.
Introspection is digression.

Regexes, unless set otherwise, interpolate
like double-quotes.  Double-quotes explicitly recognizes $ to mean that
a variable starts here.  A bareword inside doublequotes is not interpreted,
in Perl or C.
 


 
> Anyways, I'm done harping on this issue. I think a single, simple syntax
> is good. You and I will have to agree to disagree on this point.

I don't mind agreeing to disagree, but I won't do it until you can 
correctly state my position, which you haven't done yet.

>From my point of view it appears that you are confusing me with one of the
people (whose names I would have to look up to list) who want to remove
leading $ and @ from variables.  I am not in their camp. I agree with you
that those are not workable proposals.

I do not say variables are barewords, I say that barewords may, in addition
to being function calls, be variables.  Which is a behavior we can, in fact,
finess out of later versions of perl five that allow subroutines to return l-values,
although doing so requires an explicit declare($$) method, which would take its
arguments as barewords and set up the accessing method and add it to the symbol table.


        sub Declare($$){


                my ($type, $name) = @_;

                my $atman;      # a universal virtual base class

                $Declared::VarRef{$name} = \$atman;
                $Declared::VarType{$name} = $type;

                eval <<ENDEVAL;

        sub $name : lvalue { return \$\$Declared::VarRef{$name} };

        ENDEVAL


        };


And there it is, a bareword that quacks like a variable.






-- 
                          David Nicol 816.235.1187 [EMAIL PROTECTED]
       perl -e'@w=<>;for(;;){sleep print[rand@w]}' /usr/dict/words

Reply via email to