Subrutiner i templats

Perl & Ruby

1 svar · 216 visningar · startad av nordan

Medlem sedan juni 2000949 inlägg
Trådstart#1

Hej!
Jag skulle vilja använda subrutiner i templats men har inte fått det att funka *som vanligt då*
Mitt CGI script som jag har ser ut så här

#!usr/bin/perl
use strict;
use HTML::Template;
use CGI;
use constant TMPL_FILE => "test.tmpl";

sub prova{
print "Provar om subrutiner går att skriva ut";
}

my $tmpl = new HTML::Template( filename => TMPL_FILE );
my $time = localtime;

$tmpl->param(time => $time);

print "Content-type: text/html\n\n",

	$tmpl->output;
my $q = new CGI;
my $tmpl = new HTML::Template( filename => TMPL_FILE,
				associate => $q);

Det jag vill är att jag vill kunna skriva ut en subrutin till en templat fil tex sub prova
Någon som kan tala om det?
Det kanske inte går eller går det?

Medlem sedan aug. 2000374 inlägg
#2

Hej!

Du ska nog inte printa ut något utan snarare retunera ett värde/sträng. Kika på följande kod:

#!/usr/bin/perl -w

use strict;
use CGI qw(:standard);
use HTML::Template;

my $q = new CGI;

my $template = HTML::Template->new(
  filename          => 'mall.tmpl',
  associate         => $q,
  global_vars       => 1,
  die_on_bad_params => 0,
  loop_context_vars => 1,
);

$template->param(
  RANDOM => random(),
);

print "Content-Type: text/html\n\n";
print $template->output;

sub random {
    return int( rand(50) );
}

Mallen:


<HTML>
<BODY>

  <P>Ditt tal: <TMPL_VAR NAME="RANDOM"></P>

</BODY>
</HTML>
244 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)