Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^4: Make $^V and "my" implicit

by gunzip (Pilgrim)
on Feb 03, 2014 at 17:57 UTC ( [id://1073243] : note . print w/replies, xml ) Need Help??

in reply to Re^3: Make $^V and "my" implicit
in thread Make $^V and "my" implicit

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re^5: Make $^V and "my" implicit
by chromatic (Archbishop) on Feb 03, 2014 at 19:56 UTC
    Pre-declaration can be achieved by assigning an empty string or an empty list.

    Now you've overloaded the assignment operator to perform both declaration and assignment, depending on its second operand. How far are you going to take this? Does this apply only to constant operands? What if you assign an empty string returned from a function? What if you want to clear a variable in an inner scope? How do you disambiguate between assignment and declaration then?

Re^5: Make $^V and "my" implicit
by ikegami (Patriarch) on Feb 06, 2014 at 02:53 UTC

    Are you suggesting we declare variables using $x = undef; instead of my $x;? It doesn't sound like a good thing to me. It's longer, and it's less clear. And of course, you'd need a new way to undefine variables.

    If you're not talking about replacing all my $x; with $x = undef;, then it's not a declaration, and it would make it impossible to catch typos.