Uri Guttman wrote: > local *__ANON__ = \"subname" ; > why do you think you need a glob there at all?
__ANON__ is taking advantage of semi-documented internals black magic, so I stuck with what was shown in all the examples. local $__ANON__ = ... results in: Global symbol "$__ANON__" requires explicit package name... This sub is being parsed by eval at run time. It may be possible to get creative with __PACKAGE__ to qualify the namespace...though this: http://www.perlmonks.org/?node_id=417192 could make that rather challenging. > ...it may work with setting the lexical scalar I doubt it. I suspect caller() is doing something equivalent to: $subname ||= ${ __PACKAGE__ :: __ANON__ } so __ANON__ needs to be in the symbol table for the package that's currently active. > warn "$__ANON__, ...\n" ; I had previously tried that, and ran into the same "Global symbol ... requires explicit package name..." error. I'm sure I could work around this by calling caller() in each warn, or setting a lexical from it, but I was curious to see if there was a syntax that would work for using __ANON__ directly. Seems like it wants something like: warn ${ __PACKAGE__ :: __ANON__ } ... which wouldn't work (at least not with strict) for a number of reasons. But I still don't get why "*" is showing up in the output. -Tom -- Tom Metro Venture Logic, Newton, MA, USA "Enterprise solutions through open source." Professional Profile: http://tmetro.venturelogic.com/ _______________________________________________ Boston-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/boston-pm

