Thanks for pointing this out. I actually remember the discussion on p5p and it was interesting, see the CLONE_SKIP story.
So the underscore is not so good actually :(. The next best thing
could be a simple "postfix".
use constant MYPACKAGE_c => 'Universe::Tiny';
use constant RWXu => 0700;
use constant MYLOGGERc => \do{local *FH; *FH};
Actually a postfix like "c" or "_c" (or even "const" if you don't feel lazy) is good *visually* to remember they are gotchas like remembering when {}ing is actually necessary! (stressed by PBP)
MYPACKAGE_c->factory();
print {LOGGERc} "important login data";
#!/usr/bin/perl
use strict;
use warnings;
use constant LOGGERc => \do{local *FH; *FH}; # silence warnings
open LOGGERc, ">mylog" or die; # gotcha
print {LOGGERc} "info...", "\n" or die;
print {\*STDOUT} qx(cat mylog);
decent_shell% perl -MLWP::UserAgent -Mconstant=PKGc,LWP::UserAgent -e
+'print +PKGc->new();'
cheers
--stephan |