I'm an idiot. "De-reference", how stupid!?! The
problem was I was improperly accessing parameters
inside the subroutine.
Well, here's my GetSubName code, to make up for my
idiotic bandwidth hogging:
sub GetSubName
{
my @callerPath = split(/::/, shift(@_));
return $callerPath[$#callerPath];
}
G
--- George Jempty <[EMAIL PROTECTED]> wrote:
> Though a newbie to both CGI::Application and OO, I
> intend a pretty sophisticated application, for
> instance using one regular expression as the naming
> convention for both my subroutines and templates.
> So
> in setup() I am declaring:
>
> $self->param
> ('nameConv' =>
> '(Insert|Update)?(Page)([1-9]\d*)(.*\.html)?'
> );
>
> Then, from each run mode subroutine, I want to call
> a
> custom helper subroutine that will match the name of
> the subroutine against the naming convention,
> _ideally_ as follows:
>
> sub InsertPage1
> {
> my $self = shift;
> my $callee = GetSubName((caller(0))[3]);
> #Another 'helper' subroutine
> #$callee now holds "InsertPage1"
> my ($dbMode, $prefix, $pageNum, $suffix) =
> NameConvMatcher($callee);
>
> _etcetera_
>
> However, I cannot assign $self->param('nameConv') to
> a
> lexical inside NameConvMatcher() because $self is
> out
> of scope. And I can't just modify NameConvMatcher()
> to take a second argument and then pass
> $self->param('nameConv'), but rather I'd first have
> to
> "de-reference" into another variable as follows:
>
> my $nameConv = $self->param('nameConv');
>
> and then pass $nameConv. It's bad enough, but
> unavoidable, that I have to assign $callee at the
> top
> of every run mode subroutine. Is there a _good_ way
> (I can think of bad ones) I can at least avoid also
> having to de-reference $self-param('nameConv') into
> $nameConv at the top of every run mode sub, only to
> pass it to my custom helper subroutine?
>
> Am I even making sense? ;)
>
> Thanks in advance for any advice or tips, again
> bearing in mind that I'm a newbie with this module,
> and with OO. Finally, please _personally_ copy me,
> as
> well as the group address, as I am subscribing only
> to
> the daily digest.
>
> =====
> George M. Jempty
> Database Admin/Intranet Architect
> Regional West Medical Center
> Scottsbluff, Nebraska
> [EMAIL PROTECTED][EMAIL PROTECTED]
>
> __________________________________________________
> Do You Yahoo!?
> Send your FREE holiday greetings online!
> http://greetings.yahoo.com
>
__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]