use strict;
use warnings;

# Hash fuer den Test statisch definieren
my %data = (
           username => 'Bobo',
           count    => 12,
           lastdate => '2009-12-23',
           lastip   => '127.0.0.1',
           );

# Bearbeitetes Template ausgeben
print template('test.tpl', \%data);


sub template 
  {
  my ($datei, $data) = @_;
  my $text;
  local $/;                       # Datei auf String einlesen
  local *F;                       # locales filehandle
  open(F, '<', $datei) || die "Oops: $datei $!\n";
  $text = <F>;                    # Datei komplett einlesen
  close(F);
  
  # Ersetzen der Template-Variablen durch die Daten im Hash. 
  # Ja, das geht so in Perl :-)
  $text =~ s{ \[%\s+(\w+)\s+%\] }
            { defined($data->{$1})? $data->{$1} : '' }gsex;
    return $text;
  }