pl: Frage zum Wiki-Artikel „Funktionen für Zeichenketten“

Beitrag lesen

problematische Seite

Na, Du hattest doch letztens die Referenzen am Wickel. Dann machen wir doch gleich einmal ein Beispiel für Modernes Perl und nehmen statt der umständlichen print()-Ausgabe doch gleich eine richtige Templating Engine:

#!/usr/bin/perl

use strict;
use warnings;
use HTML::Template;

# Lese Handler DATA
# übergebe Scalar Referenz
my $data = do{ local $/ = undef; <DATA>  };

# TE Instanz erstellen
my $template = HTML::Template->new( scalarref => \$data );

# Daten erzeugen
my @slice = ();
foreach my $num( 0..127 ){
    push @slice, {
        ord => $num,
        chr => chr($num)
    };
}

# Daten an TE Instanz übergeben
# als Referenz auf das Array
$template->param(chars => \@slice);

# Template rendern und ausgeben
print $template->output();

# Template unterhalb DATA Token
__DATA__

<table>
    <thead>
        <tr>
            <th> ASCII Numerisch </th>
            <th> Zeichen </th>
        </tr>
    </thead>
    <tbody>
      <TMPL_LOOP name="chars">
        <tr>
            <td> <TMPL_VAR name="ord"> </td>
            <td> <TMPL_VAR name="chr"> </td>
        </tr>
      </TMPL_LOOP>
    </tbody>
</table>

Und das ist doch mal ein schönes Beispiel, wie man mit Perl einen ordentlichen Code schreiben kann.

Machs besser 😉

PS: Escapen nicht vergessen, das kann die TE, siehe untenstehend:

<td> <TMPL_VAR name="chr" ESCAPE=HTML> </td>