caedes has asked for the wisdom of the Perl Monks concerning the following question:
I have a subroutine that is called from many other packages. I need this subroutine to read the contents of __DATA__ from the package that called it and then do something with it (__DATA__ will contain a default template for html output). I have tried something like this:
but that didn't work. I even tried this just to see if it would work if I hard-coded in the caller's package name:package TMPL; sub fodus { my $caller = (caller(0))[0]; my $out = join('',<{$caller .'::DATA'}>); # do stuff to $out return $out; }
But it still complained that Caller::DATA was only used once. In both of these examples I'm using strict with warnings. So how exactly can I access the contents of __DATA__ in a different package?package TMPL; sub fodus { my $out = join('',<Caller::DATA>); # do stuff to $out return $out; }
-caedes
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Accessing the __DATA__ blocks of other packages
by Ovid (Cardinal) on Dec 11, 2002 at 21:58 UTC | |
by caedes (Pilgrim) on Dec 11, 2002 at 22:24 UTC | |
Re: Accessing the __DATA__ blocks of other packages
by pfaut (Priest) on Dec 11, 2002 at 22:03 UTC | |
by caedes (Pilgrim) on Dec 11, 2002 at 22:19 UTC | |
by pfaut (Priest) on Dec 11, 2002 at 22:39 UTC | |
Re: Accessing the __DATA__ blocks of other packages
by Aristotle (Chancellor) on Dec 14, 2002 at 23:53 UTC | |
by pfaut (Priest) on Dec 15, 2002 at 00:02 UTC | |
Re: Accessing the __DATA__ blocks of other packages
by archangelq (Novice) on Aug 02, 2004 at 20:18 UTC |
Back to
Seekers of Perl Wisdom