The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package example_1;

use strict;    # always a good idea to include these in your
use warnings;  # modules


use base qw ( Example );

use Carp::Heavy;
use Data::Dumper;
use Time::Format qw ( %time );

sub setup {
    $_[0]->run_modes( [ qw ( main_display ) ] );
}

sub main_display {

    my $self = shift;

    my $config = $self->conf->context;


    my %tmplvars = ();

    $tmplvars{'current_time'}    = $time{'yyyy/mm/dd hh:mm:ss'};
    $tmplvars{'timeout'}         = $config->{'session_timeout'};
    $tmplvars{'self_state_dump'} = Data::Dumper->Dump([$self], [qw(*self)]);
    $tmplvars{'load_count'}      = ++$self->session->{count};

    $tmplvars{'stack_trace_dump'} = Carp::longmess_heavy
	("Hey hey world I've got something to say... ");

    $tmplvars{'SELF_HREF_LINK'} = $self->make_link
	( qs_args => { rm => 'main_display', } );

    my @random_loop_rows = ();
    foreach my $key ( 1 .. 10 ) {
	my %loopvars       = ();
	$loopvars{'key'}   = $key;
	$loopvars{'value'} = chr($key - 1 + 65) x $key;
	push @random_loop_rows, \%loopvars;
    }
    $tmplvars{'a_random_loop'} = \@random_loop_rows;


    return $self->template->fill(\%tmplvars);
}

1;