Sure. I think you would like to have the error messages next to the sub
that threw them, but here is what you want: (NOT TESTED!!)

In your module:

my $messages = [
        {text => 'quantity is undefined, zero or illegal'},
        {text => 'amount is undefined or illegal'},
        {text => 'payment is undefined or illegal'},
];

my $stack = [
        {
                sub => undef,
                filename => 'tests/purchase.pl',
                line => 43,
                package => 'main',
        },
        {
                sub => 'ISP::Transac::create_transaction',
                filename => 
'/usr/local/lib/perl5/site_perl/5.8.9/ISP/Transac.pm',
                line => 32,
                package => 'ISP::Transac',
        },
        {
                sub => 'ISP::Sanity::transaction_data',
                filename => 
'/usr/local/lib/perl5/site_perl/5.8.9/ISP/Sanity.pm',
                line => 55,
                package => 'ISP::Sanity',
        },
];

my $tpl = $app->load_tmpl('templatefile.tpl', die_on_bad_params => 0);
$tpl->param(
        MESSAGES => $messages,
        STACK => $stack,
);

return $tpl->output;

In your template file

<ul>
<!-- TMPL_LOOP NAME=MESSAGES -->
        <li><!-- TMPL_VAR NAME=TEXT --></li>
<!-- /TMPL_LOOP -->
</ul>

<ul>
<!-- TMPL_LOOP NAME=STACK -->
        <li>
        <ul>
        <!-- TMPL_VAR NAME=sub --><br />
        <!-- TMPL_VAR NAME=filename --><br />
        <!-- TMPL_VAR NAME=line --><br />
        <!-- TMPL_VAR NAME=package -->
        </ul>
        </li>
<!-- /TMPL_LOOP -->

        

HTH


On Mon, 2009-06-29 at 23:51 -0400, Steve Bertrand wrote:
> Gurunandan R. Bhat wrote:
> > How do you want the output to look? If you write in a sample output, I
> > could help with the template to generate that output
> 
> I would be extremely delighted to even get the following rendered for
> now, given the Data::Dumper output below. If I had a decent example,
> then I'd be able to learn from it, and go from there:
> 
> --- output displayed as I'd see it in the browser---
> 
> Error messages:
> 
> quantity is undefined, zero or illegal
> amount is undefined or illegal
> payment is undefined or illegal
> 
> Stack trace:
> 
> sub => undef;
> filename => tests/purchase.pl
> line => 43
> package => main
> 
> sub => ISP::Transac::create_transaction
> filename => /usr/local/lib/perl5/site_perl/5.8.9/ISP/Transac.pm
> line => 32
> package => ISP::Transac
> 
> sub => ISP::Sanity::transaction_data
> filename => /usr/local/lib/perl5/site_perl/5.8.9/ISP/Sanity.pm
> line => 55
> package => ISP::Sanity
> 
> --- end browser output ---
> 
> Here again is the actual data. $VAR1 is an array of the error messages,
> and $VAR2 is an array, where each element is a hash which represents a
> level in a stack trace.
> 
> $VAR1 = \[
>             'quantity is undefined, zero or illegal',
>             'amount is undefined or illegal',
>             'payment is undefined or illegal'
>           ];
> $VAR2 = \[
>             {
>               'sub' => undef,
>               'filename' => 'tests/purchase.pl',
>               'line' => 43,
>               'package' => 'main'
>             },
>             {
>               'sub' => 'ISP::Transac::create_transaction',
>               'filename' =>
> '/usr/local/lib/perl5/site_perl/5.8.9/ISP/Transac.pm',
>               'line' => 32,
>               'package' => 'ISP::Transac'
>             },
>             {
>               'sub' => 'ISP::Sanity::transaction_data',
>               'filename' =>
> '/usr/local/lib/perl5/site_perl/5.8.9/ISP/Sanity.pm',
>               'line' => 55,
>               'package' => 'ISP::Sanity'
>             }
>           ];
> 
> Thank you!
> 
> Steve


-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to