Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^4: Why Does Test::Deep Kill Test::Class

by Your Mother (Bishop)
on Jan 09, 2009 at 19:59 UTC ( #735286=note: print w/replies, xml ) Need Help??

in reply to Re^3: Why Does Test::Deep Kill Test::Class
in thread Why Does Test::Deep Kill Test::Class

A bit late reply, sorry, but I find "()" to be quite nice. You just have to cultivate the habit of using it.

  • Comment on Re^4: Why Does Test::Deep Kill Test::Class

Replies are listed 'Best First'.
Re^5: Why Does Test::Deep Kill Test::Class
by fergal (Chaplain) on Mar 20, 2009 at 16:45 UTC

    () would be fine if you didn't then have to type

    use Foo::Bar::Woz::Snuts (); Foo::Bar::Woz::Snuts::Wibble($x, $y)

    Python gets it right (well better at least) with

    from import snuts; snuts.wibble(x, y)

    and suchlike. This is pretty much impossible in Perl due to symbol table access being absolute, not relative.

      You don't if the module does its exporting right, and most do.

      use Foo::Bar::Woz::Snuts qw( Wibble );

      I realize you're talking about having relative spaces in the code though. To me that would add arbitrary levels of (human) ambiguity for the hacker trying to read it. I think this could be solved in Perl too with some export/namespace alias magick but I wouldn't like or use the feature.

        There is no ambiguity in how it's done in python and after 4 years of python, I've never had a problem or even heard a complaint about that. Howver, squishing it into Perl would be hard because you'd have to make it live side-by-side with the currently absolute package names and without introducing new syntax, you would have ambiguity and confusion.

        Python doesn't provide any syntax for addressing packages with using an absolute name. You can do it but by digging around in sys.modules but it's not part of the language as such.

        All that said, I have rarely missed Perl's absolute package scheme when writing python and I have often missed python's relative package scheme when writing Perl.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://735286]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (3)
As of 2020-08-14 23:12 GMT
Find Nodes?
    Voting Booth?
    Which rocket would you take to Mars?

    Results (76 votes). Check out past polls.