http://qs321.pair.com?node_id=1079515


in reply to Re^3: "warn" is your best friend
in thread "warn" is your best friend

Yes, I meant use ::diag for debugging in the module code itself; not just in the test suite!

use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

Replies are listed 'Best First'.
Re^5: "warn" is your best friend
by Bloodnok (Vicar) on Mar 24, 2014 at 14:25 UTC
    Aahh, I see now - at the time the leading '::' wasn't abundantly clear (as if anything ever is? :-) How on earth did you find out about that - there's nothing in the perldoc for it ?

    Awesome, ground-breaking (for me) discovery.

    Many thanx again ... tobyink++++

    A user level that continues to overstate my experience :-))

      When you do use Test::More in a test script, what you're doing is importing all Test::More's functions (including diag) into the main package, so it can be accessed as main::diag instead of Test::More::diag.

      The first paragraph of perlmod tells us that ::foo is a shorthand for main::foo.

      Thus ::diag works everywhere in your modules, provided something has happened to import Test::More into main (most likely: you are running your module through its test suite).

      use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name