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

Reply via email to