Skip to main content
  • Home
  • login
  • Browse the archive

    swh mirror partner logo
swh logo
SoftwareHeritage
Software
Heritage
Mirror
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • c6699af
  • /
  • external
  • /
  • perl
  • /
  • Text-Template-1.56
  • /
  • t
  • /
  • strict.t
Raw File
Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:f56aa586c5ddd4e4bfd77300bcf6e0806b4f0553
directory badge Iframe embedding
swh:1:dir:7f3413dd469356106299d911badbf763182377dc
strict.t
#!perl
#
# Tests for STRICT features
# These tests first appeared in version 1.48.

use strict;
use warnings;
use Test::More tests => 4;

use_ok 'Text::Template' or exit 1;

@Emptyclass1::ISA = 'Text::Template';
@Emptyclass2::ISA = 'Text::Template';

my $tin = q{The value of $foo is: {$foo}};

Text::Template->always_prepend(q{$foo = "global"});

my $tmpl1 = Text::Template->new(
    TYPE   => 'STRING',
    SOURCE => $tin);

my $tmpl2 = Text::Template->new(
    TYPE    => 'STRING',
    SOURCE  => $tin,
    PREPEND => q{$foo = "template"});

$tmpl1->compile;
$tmpl2->compile;

# strict should cause t1 to contain an error message if wrong variable is used in template
my $t1 = $tmpl1->fill_in(PACKAGE => 'T1', STRICT => 1, HASH => { bar => 'baz' });

# non-strict still works
my $t2 = $tmpl2->fill_in(PACKAGE => 'T2', HASH => { bar => 'baz' });

# prepend overrides the hash values
my $t3 = $tmpl2->fill_in(
    PREPEND => q{$foo = "fillin"},
    PACKAGE => 'T3',
    STRICT  => 1,
    HASH    => { foo => 'hashval2' });

like $t1, qr/Global symbol "\$foo" requires explicit package/;
is $t2, 'The value of $foo is: template', "non-strict hash still works";
is $t3, "The value of \$foo is: fillin", "hash values with prepend, prepend wins, even under strict.";

ENEA — Copyright (C), ENEA. License: GNU AGPLv3+.
Legal notes  ::  JavaScript license information ::  Web API

back to top