Thread HTML::Template::Compiled - der Parser ist bei Fehlern wenig hilfreich (0 answers)
Opened by GwenDragon at 2022-11-02 18:08

GwenDragon
 2022-11-02 18:08
#194523 #194523
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
HTML::Template::Compiled (kurz HTC) ist sehr schön und nett, ein Danke an @pq, aber… manchmal hat das Modul unbeabsichtigt Fallen oder ich bin zu dusselig.

Also mein Problem: da wirft der Parser eine Fehlermeldung aus, die kaum verständlich ist und zudem nicht wirklich den Fehler zeigen kann.
Hier:
Quote
HTML::Template::Compiled::Parser : Syntax error in <TMPL_*> tag at :2 near '<?IF expr=" comdata.status eq '-'" ?>????
<?E...'


Wer errät, wo das Problem ist?
OK, ich weiß es ja mittlerweile auch. ;-)

Aber ich habe mir heute stundelang die Haare gerauft, weil ein Template nicht mehr wollte.
Dabei arbeite ich nicht zum ersten Mal mit HTC.

Dann hab ich das eingegrenzt mit einem Schnippsel:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl

use strict;
use warnings;
use 5.024;
use utf8;

use HTML::Template::Compiled;

my $htc = HTML::Template::Compiled->new(
    filehandle => *DATA,
    tagstyle   => [ qw(+php), ],
);

my $data = {
    comdata => {
        test   => 11,
        status => '-',
    }
};

$htc->param($data);
print $htc->output;

__DATA__
COMDATA Status: <?= comdata.test ?>
comdata.status <?IF expr=" comdata.status eq '-'" ?>????
<?ELSE?>
OK
<?/IF?>


Lasst es mal im Terminal laufen.
HTML::Template::Compiled::Parser : Syntax error in <TMPL_*> tag at :2 near '<?IF expr=" comdata.status eq '-'" ?>????
<?E...'


Tja, böse Konfigurationsfalle!
Ohne use_expressions => 1 in den Parametern für new, wirft das Programm dies aus:
HTML::Template::Compiled::Parser : Syntax error in <TMPL_*> tag at  :2 near '<?IF expr=" comdata.status eq '-'" ?>???? <?E...'

Der Parser sollte eigentlich schon wissen, wo die Macke war, dass es an expr lag, etwas gesprächiger sein.

@pq
Oder geht sowas nicht, ist es schwierig zu implementieren, aus Zeitmangel, die gesprächige Ausgabe des Fehlers? Oder überseh’ ich eine Möglichkeit HTC gesprächiger zu machen?
Ist nicht als Kritik gemeint.
Ich würde es nur gern wissen wie ich in Zukunft solche Fallen vermeide.
Last edited: 2022-11-03 10:42:01 +0100 (CET)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread HTML::Template::Compiled - der Parser ist bei Fehlern wenig hilfreich