#!C:\apachefriends\xampp\perl\bin\perl.exe use strict; use warnings; use CGI; use lib qw(/homes/frasbio11/reneeb/cpan/); use HTML::Template; my $cgi       = CGI->new(); my %eingabe   = $cgi->Vars(); my $tmpl_file = 'rechnung_template.tmpl'; my $nr_file   = 'rechnungsnr.txt'; my $template = HTML::Template->new(filename => $tmpl_file); print $cgi->header(); my ($heute,$rech_string) = get_date(); #Rechnungsnr. aus Datei holen und Rechnungsnummer hochsetzen open(INFO, "<$nr_file") or die $!; my $rechnungsnr = ; close (INFO); my $rechnung = $rech_string . $rechnungsnr; $rechnungsnr++; open(WRITE, ">$nr_file") or die $!; print WRITE $rechnungsnr; close (WRITE); my @array; foreach $product (split("##",$eingabe{products})){ # Ich würde andere Trenner benutzen...  ($bez, undef, $preis, $menge, $wert)= split ("; ", $product);  $menge =~ s/(.) Stk./\1/;  $wert =~ s/ (.*,.*) EUR/\1/;  $einheit = "Fl/Stk";  #warenwert für mwst feststellen: perl braucht einen . als fließkommaoperator, kein komma  $wert =~ s/,/\./;  $warenwert += $wert;  $wert =~ s/\./\,/;  push(@array,{BEZEICHNUNG => $bez, WERT => $wert, MENGE => $menge, PREIS => $preis, EINHEIT => $einheit}); } $template->param(SEX         => $eingabe{sex},                 NAME        => $eingabe{name},                 ADDRESS     => $eingabe{address},                 ZIP         => $eingabe{zip},                 TOWN        => $eingabe{town},                 RECHNUNGSNR => $rechnung,                 DATUM       => $heute,                 POSTEN    => \@array,); print $template->output(); ## # Subroutines ## sub get_date{ my $tm = shift || time; my @lt = localtime($tm); my $datum = sprintf "%02d.%02d.%04d", $lt[3], $lt[4] + 1, $lt[5] + 1900; my $rech  = (sprintf "%02d", $lt[4]+1).(substr($lt[5],1)); return ($datum,$rech); }# end of subroutine