use strict; use warnings; use CGI; use Mojo::Template; use FindBin qw($Bin); use constant TEMPLATE_PATH => "$Bin/"; (my $template = __FILE__) =~ s/\.pl$/.tt/; # Derive the template from the script name my $data = {list => [qw(foo bar baz)]}; render($template, $data); sub render { my ($temp, $data) = @_; print Mojo::Template ->new(vars => 1) ->render_file(TEMPLATE_PATH . $temp, $data); }