|  | #!perl | 
|  | # | 
|  | # Tests for PREPEND features | 
|  | # These tests first appeared in version 1.22. | 
|  |  | 
|  | use Text::Template; | 
|  |  | 
|  | die "This is the test program for Text::Template version 1.46 | 
|  | You are using version $Text::Template::VERSION instead. | 
|  | That does not make sense.\n | 
|  | Aborting" | 
|  | unless $Text::Template::VERSION == 1.46; | 
|  |  | 
|  | print "1..9\n"; | 
|  | my $n = 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"}); | 
|  |  | 
|  | $tmpl1 = Text::Template->new(TYPE => 'STRING', | 
|  | SOURCE => $tin, | 
|  | ); | 
|  |  | 
|  | $tmpl2 = Text::Template->new(TYPE => 'STRING', | 
|  | SOURCE => $tin, | 
|  | PREPEND => q{$foo = "template"}, | 
|  | ); | 
|  |  | 
|  | $tmpl1->compile; | 
|  | $tmpl2->compile; | 
|  |  | 
|  | $t1 = $tmpl1->fill_in(PACKAGE => 'T1'); | 
|  | $t2 = $tmpl2->fill_in(PACKAGE => 'T2'); | 
|  | $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T3'); | 
|  |  | 
|  | ($t1 eq 'The value of $foo is: global') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  | ($t2 eq 'The value of $foo is: template') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  | ($t3 eq 'The value of $foo is: fillin') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  |  | 
|  | Emptyclass1->always_prepend(q{$foo = 'Emptyclass global';}); | 
|  | $tmpl1 = Emptyclass1->new(TYPE => 'STRING', | 
|  | SOURCE => $tin, | 
|  | ); | 
|  |  | 
|  | $tmpl2 = Emptyclass1->new(TYPE => 'STRING', | 
|  | SOURCE => $tin, | 
|  | PREPEND => q{$foo = "template"}, | 
|  | ); | 
|  |  | 
|  | $tmpl1->compile; | 
|  | $tmpl2->compile; | 
|  |  | 
|  | $t1 = $tmpl1->fill_in(PACKAGE => 'T4'); | 
|  | $t2 = $tmpl2->fill_in(PACKAGE => 'T5'); | 
|  | $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T6'); | 
|  |  | 
|  | ($t1 eq 'The value of $foo is: Emptyclass global') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  | ($t2 eq 'The value of $foo is: template') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  | ($t3 eq 'The value of $foo is: fillin') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  |  | 
|  | $tmpl1 = Emptyclass2->new(TYPE => 'STRING', | 
|  | SOURCE => $tin, | 
|  | ); | 
|  |  | 
|  | $tmpl2 = Emptyclass2->new(TYPE => 'STRING', | 
|  | SOURCE => $tin, | 
|  | PREPEND => q{$foo = "template"}, | 
|  | ); | 
|  |  | 
|  | $tmpl1->compile; | 
|  | $tmpl2->compile; | 
|  |  | 
|  | $t1 = $tmpl1->fill_in(PACKAGE => 'T4'); | 
|  | $t2 = $tmpl2->fill_in(PACKAGE => 'T5'); | 
|  | $t3 = $tmpl2->fill_in(PREPEND => q{$foo = "fillin"}, PACKAGE => 'T6'); | 
|  |  | 
|  | ($t1 eq 'The value of $foo is: global') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  | ($t2 eq 'The value of $foo is: template') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  | ($t3 eq 'The value of $foo is: fillin') or print "not "; | 
|  | print "ok $n\n"; $n++; | 
|  |  | 
|  |  |