Subrutiner i templats

Perl & Ruby

1 svar · 197 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>
261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)