webForumDet fria alternativet

Subrutiner i templats

Perl & Ruby

1 svar · 189 visningar · startad av nordan

Medlem sedan juni 2000949 inlägg
Frågan#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?

------------------
/nordan

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>

------------------
Hansen
c.h@ngmedia.com

[Redigerat av Hansen den 23 maj 2001]

365 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
229 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)