When calling make_component on an Interp object(see snippet below), the
following message is output:
Use of uninitialized value in concatenation (.) or string at
/usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Tools.pm line 114.
The line pointed to in the message is in
HTML::Mason::Tools::absolute_comp_path().
$comp_path = "$dir_path/$comp_path" if $comp_path !~ [EMAIL PROTECTED]/@;
This occurs when calling absolute_comp_path on an autohandler.
The autohandler is name 'autohandler' so the autohandler_name param
should not need to be set when calling Interp->new().
Adding some debugging statements to Tools.pm shows that in this case,
absolute_comp_path() is being called from
HTML::Mason::Component::_determine_inheritance():
$self->{inherit_path} =
absolute_comp_path($self->{flags}->{inherit}, $self->dir_path);
and in the case of an autohandler, $self->dir_path is undef.
Without tracing too much further up the stack,
where_determine_inheritance() is called from make_component(), is there
a parameter that needs to be set when calling make_component() and using
autohandlers?
#########
#
# Snippet
#
my $interp = HTML::Mason::Interp->new(
comp_root => $comp_roots->{ $mail_type },
out_method => \$email_body->{ $mail_type },
data_dir => $datadir->{ $mail_type },
);
my $component = $interp->make_component(
comp_file => $mail_comps->{ $mail_type },
name => "${email_type} ${mail_type}",
);
--
Shawn Page
Application Developer
[EMAIL PROTECTED]
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Mason-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mason-users