Checking if your kit is complete... Looks good Writing Makefile for Template::Parser::CET pod2text lib/Template/Parser/CET.pm > README cp lib/Template/Parser/CET.pm blib/lib/Template/Parser/CET.pm Manifying blib/man3/Template::Parser::CET.3 PERL_DL_NONLAZY=1 /home/cpanrun/tmp/5.8.0/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/00_base........................1..24 ok 1 - use Template::Parser::CET; ok 2 - Found a PARSER in config (Template::Parser) ok 3 - Line 56 "[% 234 %]" => "234" ok 4 - Line 57 "[% {b=>'B'}.b %]" => "B" ok 5 - PARSER is still different ok 6 - Template::Parser::CET has an activate method ok 7 - Called activate ok 8 - PARSER now matches ok 9 - Line 65 "[% {b=>'B'}.b %]" => "B" ok 10 - Template::Parser::CET has an activate method ok 11 - Called deactivate ok 12 - PARSER no longer matches ok 13 - Template::Parser::CET has an activate method ok 14 - Called activate ok 15 - PARSER now matches ok 16 - Line 65 "[% {b=>'B'}.b %]" => "B" ok 17 - Template::Parser::CET has an activate method ok 18 - Called deactivate ok 19 - PARSER no longer matches ok 20 - Ran use Template::Parser::CET activate => 1 () ok 21 - PARSER now matches ok 22 - Line 77 "[% {b=>'B'}.b %]" => "B" ok 23 - Called deactivate ok 24 - PARSER no longer matches ok t/7_template_00_base.............1..895 ### GET ############################################################## ok 1 - Line 95 "[% foo %]" => "" ok 2 - Line 96 "[% foo %]" => "7" ok 3 - Line 97 "[% foo %]" => "7" ok 4 - Line 98 "[% foo %]" => "7" ok 5 - Line 99 "[% foo %]" => "Stash" ok 6 - Line 100 "[% foo %]" => "V" ok 7 - Line 101 "[% bar %]" => "" ok 8 - Line 102 "[% foo %]" => "Stash" ok 9 - Line 103 "[% bar %]" => "" ok 10 - Line 104 "[% foo %]" => "Stash" ok 11 - Line 105 "[% foo %]" => "Stash" ok 12 - Line 106 "[% foo %][% foo %][% foo %]" => "777" ok 13 - Line 107 "[% foo() %]" => "7" ok 14 - Line 108 "[% foo.bar %]" => "" ok 15 - Line 109 "[% foo.bar %]" => "" ok 16 - Line 110 "[% foo.bar %]" => "7" ok 17 - Line 111 "[% foo().bar %]" => "7" ok 18 - Line 112 "[% foo.0 %]" => "7" ok 19 - Line 113 "[% foo.10 %]" => "" ok 20 - Line 114 "[% foo %]" => "7" ok 21 - Line 115 "[% foo(7) %]" => "7" ok 22 - Line 116 "[% foo.length %]" => "1" ok 23 - Line 117 "[% foo.0 %]" => "7" ok 24 - Line 118 "[% foo(bar) %]" => "7" ok 25 - Line 119 "[% foo(bar.baz) %]" => "7" ok 26 - Line 120 "[% foo.seven %]" => "7" ok 27 - Line 121 "[% foo.seven() %]" => "7" ok 28 - Line 122 "[% foo.seven.length %]" => "1" ok 29 - Line 123 "[% foo.echo(7) %]" => "7" ok 30 - Line 124 "[% foo.many.0 %]" => "1" ok 31 - Line 125 "[% foo.many.10 %]" => "" ok 32 - Line 126 "[% foo.nomethod %]" => "" ok 33 - Line 127 "[% foo.nomethod.0 %]" => "" ok 34 - Line 129 "[% GET foo %]" => "" ok 35 - Line 130 "[% GET foo %]" => "7" ok 36 - Line 131 "[% GET foo.bar %]" => "" ok 37 - Line 132 "[% GET foo.bar %]" => "" ok 38 - Line 133 "[% GET foo.bar %]" => "7" ok 39 - Line 134 "[% GET foo.0 %]" => "7" ok 40 - Line 135 "[% GET foo %]" => "7" ok 41 - Line 136 "[% GET foo(7) %]" => "7" ok 42 - Line 138 "[% $name %]" => "" ok 43 - Line 139 "[% $name %]" => "7" ok 44 - Line 140 "[% $name.bar %]" => "" ok 45 - Line 141 "[% $name.bar %]" => "" ok 46 - Line 142 "[% $name.bar %]" => "7" ok 47 - Line 143 "[% $name().bar %]" => "7" ok 48 - Line 144 "[% $name.0 %]" => "7" ok 49 - Line 145 "[% $name %]" => "7" ok 50 - Line 146 "[% $name(7) %]" => "7" ok 51 - Line 148 "[% GET $name %]" => "" ok 52 - Line 149 "[% GET $name %]" => "7" ok 53 - Line 150 "[% GET $name.bar %]" => "" ok 54 - Line 151 "[% GET $name.bar %]" => "" ok 55 - Line 152 "[% GET $name.bar %]" => "7" ok 56 - Line 153 "[% GET $name.0 %]" => "7" ok 57 - Line 154 "[% GET $name %]" => "7" ok 58 - Line 155 "[% GET $name(7) %]" => "7" ok 59 - Line 157 "[% $name %]" => "" ok 60 - Line 158 "[% GET $name %]" => "" ok 61 - Line 160 "[% ${name} %]" => "" ok 62 - Line 161 "[% ${name} %]" => "7" ok 63 - Line 162 "[% ${name}.bar %]" => "" ok 64 - Line 163 "[% ${name}.bar %]" => "" ok 65 - Line 164 "[% ${name}.bar %]" => "7" ok 66 - Line 165 "[% ${name}().bar %]" => "7" ok 67 - Line 166 "[% ${name}.0 %]" => "7" ok 68 - Line 167 "[% ${name} %]" => "7" ok 69 - Line 168 "[% ${name}(7) %]" => "7" ok 70 - Line 170 "[% GET ${name} %]" => "" ok 71 - Line 171 "[% GET ${name} %]" => "7" ok 72 - Line 172 "[% GET ${name}.bar %]" => "" ok 73 - Line 173 "[% GET ${name}.bar %]" => "" ok 74 - Line 174 "[% GET ${name}.bar %]" => "7" ok 75 - Line 175 "[% GET ${name}.0 %]" => "7" ok 76 - Line 176 "[% GET ${name} %]" => "7" ok 77 - Line 177 "[% GET ${name}(7) %]" => "7" ok 78 - Line 179 "[% ${name} %]" => "" ok 79 - Line 180 "[% GET ${name} %]" => "" ok 80 - Line 181 "[% GET ${'foo'} %]" => "bar" ok 81 - Line 183 "[% foo.$name %]" => "" ok 82 - Line 184 "[% foo.$name %]" => "7" ok 83 - Line 185 "[% foo.$name.baz %]" => "" ok 84 - Line 187 "[% "hi" %]" => "hi" ok 85 - Line 188 "[% "hi %]" => "" ok 86 - Line 189 "[% 'hi' %]" => "hi" ok 87 - Line 190 "[% 'hi %]" => "" ok 88 - Line 191 "[% "$foo" %]" => "7" ok 89 - Line 192 "[% "hi $foo" %]" => "hi 7" ok 90 - Line 193 "[% "hi ${foo}" %]" => "hi 7" ok 91 - Line 194 "[% 'hi $foo' %]" => "hi $foo" ok 92 - Line 195 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 93 - Line 196 "[% 7 %]" => "7" ok 94 - Line 197 "[% -7 %]" => "-7" ok 95 - Line 199 "[% "hi ${foo.seven}" %]" => "hi 7" ok 96 - Line 200 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 97 - Line 202 "[% _foo %]2" => "2" ok 98 - Line 203 "[% $bar %]2" => "2" ok 99 - Line 204 "[% __foo %]2" => "2" ok 100 - Line 206 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 101 - Line 207 "[% [0..10].-1 %]" => "10" ok 102 - Line 210 "[% (1 + 2)() %]" => "" ok 103 - Line 211 "[% (1 + 2) %]" => "3" ok 104 - Line 212 "[% (a) %]" => "2" ok 105 - Line 213 "[% ('foo') %]" => "foo" ok 106 - Line 214 "[% (a(2)) %]" => "2" ### SET ############################################################## ok 107 - Line 219 "[% SET foo bar %][% foo %]" => "" ok 108 - Line 220 "[% SET foo = 1 %][% foo %]" => "1" ok 109 - Line 221 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 110 - Line 222 "[% SET foo bar = 1 %][% foo %]" => "" ok 111 - Line 223 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 112 - Line 224 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 113 - Line 226 "[% SET foo = [] %][% foo.0 %]" => "" ok 114 - Line 227 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 115 - Line 228 "[% SET foo = {} %][% foo.0 %]" => "" ok 116 - Line 229 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 117 - Line 230 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 118 - Line 232 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 119 - Line 233 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 120 - Line 234 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 121 - Line 235 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 122 - Line 236 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 123 - Line 237 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 124 - Line 238 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 125 - Line 239 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 126 - Line 241 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 127 - Line 242 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 128 - Line 244 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 129 - Line 245 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 130 - Line 247 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 131 - Line 249 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 132 - Line 250 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 133 - Line 251 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 134 - Line 252 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 135 - Line 254 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 136 - Line 255 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 137 - Line 256 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 138 - Line 257 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 139 - Line 258 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 140 - Line 259 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 141 - Line 260 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 142 - Line 261 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 143 - Line 262 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 144 - Line 263 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 145 - Line 265 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 146 - Line 266 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 147 - Line 267 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 148 - Line 268 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 149 - Line 269 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 150 - Line 270 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 151 - Line 271 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 152 - Line 272 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 153 - Line 273 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 154 - Line 275 "[% foo = 1 %][% foo %]" => "1" ok 155 - Line 276 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 156 - Line 277 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 157 - Line 279 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 158 - Line 280 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 159 - Line 282 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 160 - Line 284 "[% _foo = 1 %][% _foo %]2" => "2" ok 161 - Line 285 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################################## ok 162 - Line 290 "[% foo; %]" => "1" ok 163 - Line 291 "[% GET foo; %]" => "1" ok 164 - Line 292 "[% GET foo; GET foo %]" => "11" ok 165 - Line 293 "[% GET foo GET foo %]" => "11" ok 166 - Line 294 "[% GET foo GET foo %]" => "" ok 167 - Line 296 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 168 - Line 297 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 169 - Line 298 "[% a = 1 a = a + 2 a %]" => "3" ok 170 - Line 300 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 171 - Line 301 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 172 - Line 302 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################################### ok 173 - Line 308 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 174 - Line 309 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 175 - Line 310 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 176 - Line 313 "[% foo %]" => "hi" ok 177 - Line 314 "[% GET foo %]" => "hi" ok 178 - Line 315 "[% CALL foo %]" => "" ok 179 - CALL method actually called var ### scalar vmethods ################################################## ok 180 - Line 322 "[% n.0 %]" => "7" ok 181 - Line 323 "[% n.abs %]" => "7" ok 182 - Line 324 "[% n.abs %]" => "7" ok 183 - Line 325 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 184 - Line 326 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 185 - Line 327 "[% n.chunk(3).join %]" => "abc def g" ok 186 - Line 328 "[% n.chunk(-3).join %]" => "a bcd efg" ok 187 - Line 329 "[% n|collapse %]" => "a b" ok 188 - Line 330 "[% n.cos.substr(0,5) %]" => "1" ok 189 - Line 331 "[% n.cos.substr(0,5) %]" => "0.707" ok 190 - Line 332 "[% n.defined %]" => "1" ok 191 - Line 333 "[% n.defined %]" => "" ok 192 - Line 334 "[% n.defined %]" => "1" ok 193 - Line 335 "[% n.exp.substr(0,5) %]" => "2.718" ok 194 - Line 336 "[% n.exp.log.substr(0,5) %]" => "8" ok 195 - Line 337 "[% n.fmt %]" => "7" ok 196 - Line 338 "[% n.fmt('%02d') %]" => "07" ok 197 - Line 339 "[% n.fmt('%0*d', 3) %]" => "007" ok 198 - Line 340 "[% n.fmt('(%s)') %]" => "(a # b)" ok 199 - Line 341 "[% n|format('%02d') %]" => "07" ok 200 - Line 342 "[% n|format('(%s)') %]" => "(a) # (b)" ok 201 - Line 343 "[% n.hash.items.1 %]" => "b" ok 202 - Line 344 "[% n.hex %]" => "255" ok 203 - Line 345 "[% n|html %]" => "&" ok 204 - Line 346 "[% n|indent %]" => " a # b" ok 205 - Line 347 "[% n|indent(2) %]" => " a # b" ok 206 - Line 348 "[% n|indent('wow ') %]" => "wow a # wow b" ok 207 - Line 349 "[% n.int %]" => "123" ok 208 - Line 350 "[% n.int %]" => "123" ok 209 - Line 351 "[% n.int %]" => "0" ok 210 - Line 352 "[% n.item %]" => "7" ok 211 - Line 353 "[% n.lc %]" => "abc" ok 212 - Line 354 "[% n|lcfirst %]" => "fOO" ok 213 - Line 355 "[% n.length %]" => "3" ok 214 - Line 356 "[% n.list.0 %]" => "abc" ok 215 - Line 357 "[% n.log.substr(0,5) %]" => "4.605" ok 216 - Line 358 "[% n|lower %]" => "abc" ok 217 - Line 359 "[% n.match('foo').join %]" => "" ok 218 - Line 360 "[% n.match('foo').join %]" => "1" ok 219 - Line 361 "[% n.match('foo',1).join %]" => "foo" ok 220 - Line 362 "[% n.match('(foo)').join %]" => "foo" ok 221 - Line 363 "[% n.match('(foo)').join %]" => "foo" ok 222 - Line 364 "[% n.match('(foo)',1).join %]" => "foo foo" ok 223 - Line 365 "[% n.null %]" => "" ok 224 - Line 366 "[% n.oct %]" => "255" ok 225 - Line 367 "[% n.rand %]" => "1.8009655090591" ok 226 - Line 368 "[% n.rand %]" => "0.378149062019901" ok 227 - Line 369 "[% n.remove('bc') %]" => "a" ok 228 - Line 370 "[% n.remove('bc') %]" => "aa" ok 229 - Line 371 "[% n.repeat(0) %]" => "" ok 230 - Line 372 "[% n.repeat(1) %]" => "1" ok 231 - Line 373 "[% n.repeat(2) %]" => "11" ok 232 - Line 374 "[% n.replace('foo', 'bar') %]" => "barbar" ok 233 - Line 375 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 234 - Line 376 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 235 - Line 377 "[% n.search('foo') %]" => "" ok 236 - Line 378 "[% n.search('foo') %]" => "1" ok 237 - Line 379 "[% n.sin.substr(0,5) %]" => "0" ok 238 - Line 380 "[% n.sin.substr(0,5) %]" => "1" ok 239 - Line 381 "[% n.size %]" => "1" ok 240 - Line 382 "[% n.split.join('|') %]" => "abc" ok 241 - Line 383 "[% n.split.join('|') %]" => "a|b|c" ok 242 - Line 384 "[% n.split.join('|') %]" => "a|b|c" ok 243 - Line 385 "[% n.split(u,2).join('|') %]" => "a| b c" ok 244 - Line 386 "[% n.split('/').join('|') %]" => "a|b|c" ok 245 - Line 387 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 246 - Line 388 "[% n.sprintf(7) %]" => "7" ok 247 - Line 389 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 248 - Line 390 "[% n.sqrt %]" => "3" ok 249 - Line 391 "[% n.srand; 12 %]" => "12" ok 250 - Line 392 "[% n.stderr %]" => "" ok 251 - Line 393 "[% n|trim %]" => "a b" ok 252 - Line 394 "[% n.uc %]" => "FOO" ok 253 - Line 395 "[% n|ucfirst %]" => "Foo" ok 254 - Line 396 "[% n|upper %]" => "FOO" ok 255 - Line 397 "[% n|uri %]" => "a%20b" ### list vmethods #################################################### ok 256 - Line 402 "[% a.defined %]" => "1" ok 257 - Line 403 "[% a.defined(1) %]" => "1" ok 258 - Line 404 "[% a.defined(3) %]" => "" ok 259 - Line 405 "[% a.first %]" => "2" ok 260 - Line 406 "[% a.first(3).join %]" => "2 3 4" ok 261 - Line 407 "[% a.fmt %]" => "2 3" ok 262 - Line 408 "[% a.fmt('%02d') %]" => "02 03" ok 263 - Line 409 "[% a.fmt('%02d',' ') %]" => "02 03" ok 264 - Line 410 "[% a.fmt('%02d','|') %]" => "02|03" ok 265 - Line 411 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 266 - Line 412 "[% a.grep.join %]" => "2 3" ok 267 - Line 413 "[% a.grep(2).join %]" => "2" ok 268 - Line 414 "[% a.hash.items.join %]" => "2 3" ok 269 - Line 415 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 270 - Line 416 "[% a.import(5) %]|[% a.join %]" => "ARRAY(0x8728b94)|2 3" ok 271 - Line 417 "[% a.import([5]) %]|[% a.join %]" => "ARRAY(0x8728b94)|2 3 5" ok 272 - Line 418 "[% a.item %]" => "2" ok 273 - Line 419 "[% a.item(1) %]" => "3" ok 274 - Line 420 "[% a.join %]" => "2 3" ok 275 - Line 421 "[% a.join('|') %]" => "2|3" ok 276 - Line 422 "[% a.last %]" => "10" ok 277 - Line 423 "[% a.last(3).join %]" => "8 9 10" ok 278 - Line 424 "[% a.list.join %]" => "2 3" ok 279 - Line 425 "[% a.max %]" => "1" ok 280 - Line 426 "[% a.merge(5).join %]" => "2 3" ok 281 - Line 427 "[% a.merge([5]).join %]" => "2 3 5" ok 282 - Line 428 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 283 - Line 429 "[% a.nsort.join %]" => "1 2 3" ok 284 - Line 430 "[% a.nsort('b').0.b %]" => "7" ok 285 - Line 431 "[% a.pop %][% a.join %]" => "32" ok 286 - Line 432 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 287 - Line 433 "[% a.pick %]" => "2" ok 288 - Line 434 "[% a.pick(5).join('') %]" => "32222" ok 289 - Line 435 "[% a.reverse.join %]" => "3 2" ok 290 - Line 436 "[% a.shift %][% a.join %]" => "23" ok 291 - Line 437 "[% a.size %]" => "2" ok 292 - Line 438 "[% a.slice.join %]" => "2 3 4 5" ok 293 - Line 439 "[% a.slice(2).join %]" => "4 5" ok 294 - Line 440 "[% a.slice(0,2).join %]" => "2 3 4" ok 295 - Line 441 "[% a.sort.join %]" => "1 2 3" ok 296 - Line 442 "[% a.sort('b').0.b %]" => "wee" ok 297 - Line 443 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 298 - Line 444 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 299 - Line 445 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 300 - Line 446 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 301 - Line 447 "[% a.unique.join %]" => "2 3" ok 302 - Line 448 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods #################################################### ok 303 - Line 453 "[% h.defined %]" => "1" ok 304 - Line 454 "[% h.defined('a') %]" => "1" ok 305 - Line 455 "[% h.defined('b') %]" => "" ok 306 - Line 456 "[% h.defined('a') %]" => "" ok 307 - Line 457 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 308 - Line 458 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 309 - Line 459 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 310 - Line 460 "[% h.each.sort.join %]" => "1 2 a b" ok 311 - Line 461 "[% h.exists('a') %]" => "1" ok 312 - Line 462 "[% h.exists('b') %]" => "" ok 313 - Line 463 "[% h.exists('a') %]" => "1" ok 314 - Line 464 "[% h.fmt %]" => "b B # c C" ok 315 - Line 465 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 316 - Line 466 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 317 - Line 467 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 318 - Line 468 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 319 - Line 469 "[% h.hash.fmt %]" => "b B # c C" ok 320 - Line 470 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 321 - Line 471 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 322 - Line 472 "[% h.item('a') %]" => "A" ok 323 - Line 474 "[% h.items.sort.join %]" => "1 2 a b" ok 324 - Line 475 "[% h.keys.sort.join %]" => "a b" ok 325 - Line 476 "[% h.list('each').sort.join %]" => "1 2 a b" ok 326 - Line 477 "[% h.list('keys').sort.join %]" => "a b" ok 327 - Line 478 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 328 - Line 479 "[% h.list('values').sort.join %]" => "1 2" ok 329 - Line 480 "[% h.null %]" => "" ok 330 - Line 481 "[% h.nsort.join %]" => "b a" ok 331 - Line 482 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 332 - Line 483 "[% h.size %]" => "2" ok 333 - Line 484 "[% h.sort.join %]" => "b a" ok 334 - Line 485 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ############################################ ok 335 - Line 490 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 336 - Line 491 "[% int(2.234) %]" => "2" ### more virtual methods / filters ################################### ok 337 - Line 498 "[% [0 .. 10].reverse.1 %]" => "9" ok 338 - Line 499 "[% {a => 'A'}.a %]" => "A" ok 339 - Line 500 "[% 'This is a string'.length %]" => "16" ok 340 - Line 501 "[% 123.length %]" => "3" ok 341 - Line 502 "[% 123.2.length %]" => "5" ok 342 - Line 503 "[% -123.2.length %]" => "-5" ok 343 - Line 504 "[% (-123.2).length %]" => "6" ok 344 - Line 505 "[% a = 23; a.0 %]" => "23" ok 345 - Line 506 "[% 1.rand %]" => "0.736945951115931" ok 346 - Line 508 "[% n.size %]" => "SIZE" ok 347 - Line 511 "[% foo | eval %]" => "baz" ok 348 - Line 512 "[% "1" | indent(2) %]" => " 1" ok 349 - Line 517 "[% n FILTER repeat %]" => "1" ok 350 - Line 518 "[% n FILTER repeat(0) %]" => "" ok 351 - Line 519 "[% n FILTER repeat(1) %]" => "1" ok 352 - Line 520 "[% n FILTER repeat(2) %]" => "11" ok 353 - Line 523 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 354 - Line 524 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 355 - Line 525 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 356 - Line 526 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 357 - Line 527 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 358 - Line 528 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 359 - Line 530 "[% "hi" FILTER $foo %]" => "hihi" ok 360 - Line 531 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 361 - Line 532 "[% "hi" FILTER foo %]" => "hihi" ok 362 - Line 533 "[% "hi" FILTER foo %]" => "hihi" ok 363 - Line 534 "[% "hi" FILTER foo(2) %]" => "hihi" ok 364 - Line 536 "[% ["a".."z"].pick %]" => "k" ok 365 - Line 538 "[% ' ' | uri %]" => "%20" ok 366 - Line 540 "[% "one".fmt %]" => "one" ok 367 - Line 541 "[% 2.fmt("%02d") %]" => "02" ok 368 - Line 543 "[% [1..3].fmt %]" => "1 2 3" ok 369 - Line 544 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 370 - Line 545 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 371 - Line 547 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 372 - Line 548 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 373 - Line 549 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 374 - Line 551 "[% 1|format("%s") %]" => "1" ok 375 - Line 555 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 376 - Line 556 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 377 - Line 557 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ### virtual objects ################################################## ok 378 - Line 562 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 379 - Line 563 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 380 - Line 564 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 381 - Line 566 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 382 - Line 567 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 383 - Line 568 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 384 - Line 569 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 385 - Line 570 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ### chomping ######################################################### ok 386 - Line 577 " [% foo %]" => " " ok 387 - Line 578 " [%- foo %]" => "" ok 388 - Line 579 " # [%- foo %]" => "" ok 389 - Line 580 " # [%- foo %]" => "" ok 390 - Line 581 " # [%- foo %]" => " # " ok 391 - Line 582 " # [%- foo %]" => " # " ok 392 - Line 583 " # [%- foo %]" => " " ok 393 - Line 584 " # # [%- foo %]" => " # " ok 394 - Line 586 "[% 7 %] " => "7 " ok 395 - Line 587 "[% 7 -%] " => "7 " ok 396 - Line 588 "[% 7 -%] # " => "7" ok 397 - Line 589 "[% 7 -%] # " => "7" ok 398 - Line 590 "[% 7 -%] # " => "7 " ok 399 - Line 591 "[% 7 -%] # # " => "7 # " ok 400 - Line 592 "[% 7 -%] # " => "7 " ### string operators ################################################# ok 401 - Line 597 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 402 - Line 598 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 403 - Line 599 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 404 - Line 600 "[% "b" gt "c" %]<<<" => "<<<" ok 405 - Line 601 "[% "b" gt "a" %]<<<" => "1<<<" ok 406 - Line 602 "[% "b" ge "c" %]<<<" => "<<<" ok 407 - Line 603 "[% "b" ge "b" %]<<<" => "1<<<" ok 408 - Line 604 "[% "b" lt "c" %]<<<" => "1<<<" ok 409 - Line 605 "[% "b" lt "a" %]<<<" => "<<<" ok 410 - Line 606 "[% "b" le "a" %]<<<" => "<<<" ok 411 - Line 607 "[% "b" le "b" %]<<<" => "1<<<" ok 412 - Line 608 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 413 - Line 609 "[% "b" cmp "b" %]<<<" => "0<<<" ok 414 - Line 610 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################################### ok 415 - Line 615 "[% 1 + 2 %]" => "3" ok 416 - Line 616 "[% 1 + 2 + 3 %]" => "6" ok 417 - Line 617 "[% (1 + 2) %]" => "3" ok 418 - Line 618 "[% 2 - 1 %]" => "1" ok 419 - Line 619 "[% -1 + 2 %]" => "1" ok 420 - Line 620 "[% -1+2 %]" => "1" ok 421 - Line 621 "[% 2 - 1 %]" => "1" ok 422 - Line 622 "[% 2-1 %]" => "1" ok 423 - Line 623 "[% 2 - -1 %]" => "3" ok 424 - Line 624 "[% 4 * 2 %]" => "8" ok 425 - Line 625 "[% 4 / 2 %]" => "2" ok 426 - Line 626 "[% 10 / 3 %]" => "3.33333333333333" ok 427 - Line 627 "[% 10 div 3 %]" => "3" ok 428 - Line 628 "[% 2 ** 3 %]" => "8" ok 429 - Line 629 "[% 1 + 2 * 3 %]" => "7" ok 430 - Line 630 "[% 3 * 2 + 1 %]" => "7" ok 431 - Line 631 "[% (1 + 2) * 3 %]" => "9" ok 432 - Line 632 "[% 3 * (1 + 2) %]" => "9" ok 433 - Line 633 "[% 1 + 2 ** 3 %]" => "9" ok 434 - Line 634 "[% 2 * 2 ** 3 %]" => "16" ok 435 - Line 635 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 436 - Line 636 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 437 - Line 638 "[% a = 1; (a += 2) %]" => "3" ok 438 - Line 639 "[% a = 1; (a -= 2) %]" => "-1" ok 439 - Line 640 "[% a = 4; (a /= 2) %]" => "2" ok 440 - Line 641 "[% a = 1; (a *= 2) %]" => "2" ok 441 - Line 642 "[% a = 3; (a **= 2) %]" => "9" ok 442 - Line 643 "[% a = 1; (a %= 2) %]" => "1" ok 443 - Line 644 "[% a = 1; (a += 2 + 3) %]" => "6" ok 444 - Line 645 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 445 - Line 646 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 446 - Line 648 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 447 - Line 649 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 448 - Line 651 "[% a = 2; a -= 3; a %]" => "-1" ok 449 - Line 652 "[% a = 2; a *= 3; a %]" => "6" ok 450 - Line 653 "[% a = 2; a /= .5; a %]" => "4" ok 451 - Line 654 "[% a = 8; a %= 3; a %]" => "2" ok 452 - Line 655 "[% a = 2; a **= 3; a %]" => "8" ok 453 - Line 657 "[% a = 1 %][% ++a %][% a %]" => "22" ok 454 - Line 658 "[% a = 1 %][% a++ %][% a %]" => "12" ok 455 - Line 659 "[% a = 1 %][% --a %][% a %]" => "00" ok 456 - Line 660 "[% a = 1 %][% a-- %][% a %]" => "10" ok 457 - Line 661 "[% a++ FOR [1..3] %]" => "012" ok 458 - Line 662 "[% --a FOR [1..3] %]" => "-1-2-3" ok 459 - Line 664 "[% 2 > 3 %]<<<" => "<<<" ok 460 - Line 665 "[% 2 > 1 %]<<<" => "1<<<" ok 461 - Line 666 "[% 2 >= 3 %]<<<" => "<<<" ok 462 - Line 667 "[% 2 >= 2 %]<<<" => "1<<<" ok 463 - Line 668 "[% 2 < 3 %]<<<" => "1<<<" ok 464 - Line 669 "[% 2 < 1 %]<<<" => "<<<" ok 465 - Line 670 "[% 2 <= 1 %]<<<" => "<<<" ok 466 - Line 671 "[% 2 <= 2 %]<<<" => "1<<<" ok 467 - Line 672 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 468 - Line 673 "[% 2 <=> 2 %]<<<" => "0<<<" ok 469 - Line 674 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ################################################ ok 470 - Line 679 "[% 5 && 6 %]" => "6" ok 471 - Line 680 "[% 5 || 6 %]" => "5" ok 472 - Line 681 "[% 0 || 6 %]" => "6" ok 473 - Line 682 "[% 0 && 6 %]" => "0" ok 474 - Line 683 "[% 0 && 0 %]" => "0" ok 475 - Line 684 "[% 5 && 6 && 7%]" => "7" ok 476 - Line 685 "[% 0 || 1 || 2 %]" => "1" ok 477 - Line 687 "[% 5 + (0 || 5) %]" => "10" ok 478 - Line 690 "[% 1 ? 2 : 3 %]" => "2" ok 479 - Line 691 "[% 0 ? 2 : 3 %]" => "3" ok 480 - Line 692 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 481 - Line 693 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 482 - Line 695 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 483 - Line 696 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 484 - Line 697 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 485 - Line 699 "[% 0 ? 2 : 3 %]" => "3" ok 486 - Line 700 "[% 1 ? 2 : 3 %]" => "2" ok 487 - Line 701 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 488 - Line 702 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 489 - Line 703 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 490 - Line 704 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 491 - Line 705 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 492 - Line 707 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 493 - Line 710 "[% foo = 3; foo //= 2; foo %]" => "3" ok 494 - Line 713 "[% 5 // 6 %]" => "5" ok 495 - Line 716 "[% foo // 6 %]" => "" ok 496 - Line 717 "[% foo // 6 %]" => "bar" ### regex ############################################################ ok 497 - Line 725 "[% /foo/ %]" => "(?-xism:foo)" ok 498 - Line 726 "[% /foo %]" => "" ok 499 - Line 727 "[% /foo/x %]" => "(?-xism:(?x:foo))" ok 500 - Line 728 "[% /foo/xi %]" => "(?-xism:(?xi:foo))" ok 501 - Line 729 "[% /foo/xis %]" => "(?-xism:(?xis:foo))" ok 502 - Line 730 "[% /foo/xism %]" => "(?-xism:(?xism:foo))" ok 503 - Line 731 "[% /foo/e %]" => "" ok 504 - Line 732 "[% /foo/g %]" => "" ok 505 - Line 733 "[% /foo %]" => "" ok 506 - Line 734 "[% /foo**/ %]" => "" ok 507 - Line 735 "[% /fo\/o/ %]" => "(?-xism:fo/o)" ok 508 - Line 736 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE######################################### ok 509 - Line 741 "[% PROCESS foo %]one" => "" ok 510 - Line 742 "[% BLOCK foo %]one" => "" ok 511 - Line 743 "[% BLOCK foo %][% END %]one" => "one" ok 512 - Line 744 "[% BLOCK %][% END %]one" => "one" ok 513 - Line 745 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 514 - Line 746 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 515 - Line 747 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 516 - Line 748 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 517 - Line 749 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 518 - Line 750 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 519 - Line 751 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 520 - Line 752 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 521 - Line 753 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 522 - Line 754 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 523 - Line 755 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 524 - Line 756 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 525 - Line 757 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 526 - Line 759 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 527 - Line 760 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ### IF / UNLESS / ELSIF / ELSE ####################################### ok 528 - Line 765 "[% IF 1 %]Yes[% END %]" => "Yes" ok 529 - Line 766 "[% IF 0 %]Yes[% END %]" => "" ok 530 - Line 767 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 531 - Line 768 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 532 - Line 769 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 533 - Line 770 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 534 - Line 772 "[% UNLESS 1 %]Yes[% END %]" => "" ok 535 - Line 773 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 536 - Line 774 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 537 - Line 775 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 538 - Line 776 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 539 - Line 777 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################################### ok 540 - Line 782 "[%\# one %]" => "" ok 541 - Line 783 "[%\# # one %]" => "" ok 542 - Line 784 "[%-\# # one %]" => "" ok 543 - Line 785 "[% \# # one %]" => "ONE" ok 544 - Line 786 "[%\# BLOCK one %]" => "" ok 545 - Line 787 "[%\# BLOCK one %]two" => "two" ok 546 - Line 788 "[%\# BLOCK one %]two[% END %]" => "" ok 547 - Line 789 "[%\# BLOCK one %]two[% END %]three" => "" ok 548 - Line 790 "[% # \# # -%] # foo" => "foo" ### FOREACH / NEXT / LAST ############################################ ok 549 - Line 798 "[% FOREACH foo %]" => "" ok 550 - Line 799 "[% FOREACH foo %][% END %]" => "" ok 551 - Line 800 "[% FOREACH foo %]bar[% END %]" => "" ok 552 - Line 801 "[% FOREACH foo %]bar[% END %]" => "bar" ok 553 - Line 802 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 554 - Line 803 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 555 - Line 804 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 556 - Line 805 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 557 - Line 806 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 558 - Line 807 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 559 - Line 808 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 560 - Line 809 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 561 - Line 810 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 562 - Line 811 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 563 - Line 812 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 564 - Line 813 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 565 - Line 814 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 566 - Line 815 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 567 - Line 817 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 568 - Line 822 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 569 - Line 823 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 570 - Line 824 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 571 - Line 825 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 572 - Line 826 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 573 - Line 827 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 574 - Line 828 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 575 - Line 829 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 576 - Line 830 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 577 - Line 831 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 578 - Line 833 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 579 - Line 834 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 580 - Line 835 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "3331" ok 581 - Line 837 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 582 - Line 838 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 583 - Line 839 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 584 - Line 840 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ### LOOP ############################################################# ok 585 - Line 845 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 586 - Line 855 "[% var = [{key => 'a'}, {key => 'b'}, {key => 'c'}] -%] # [% LOOP var -%] # ([% textjoin('|', key, __first__, __last__, __inner__, __odd__) %]) # [% END -%]" => "(a|1|0|0|1) # (b|0|0|1|0) # (c|0|1|0|1) # " ### WHILE ############################################################ ok 587 - Line 867 "[% WHILE foo %]" => "" ok 588 - Line 868 "[% WHILE foo %][% END %]" => "" ok 589 - Line 869 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 590 - Line 870 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 591 - Line 871 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 592 - Line 873 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 593 - Line 874 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 594 - Line 875 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 595 - Line 876 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 596 - Line 878 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 597 - Line 879 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 598 - Line 880 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 599 - Line 881 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ############################################ ok 600 - Line 886 "[% STOP %]" => "" ok 601 - Line 887 "One[% STOP %]Two" => "One" ok 602 - Line 888 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 603 - Line 889 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 604 - Line 890 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 605 - Line 892 "[% RETURN %]" => "" ok 606 - Line 893 "One[% RETURN %]Two" => "One" ok 607 - Line 894 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 608 - Line 895 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 609 - Line 896 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 610 - Line 898 "[% CLEAR %]" => "" ok 611 - Line 899 "One[% CLEAR %]Two" => "Two" ok 612 - Line 900 "[% BLOCK foo %]One[% CLEAR %]Two[% END %]First[% PROCESS foo %]Last" => "FirstTwoLast" ok 613 - Line 901 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% CLEAR %][% END %][% END %]" => "23" ok 614 - Line 902 "[% FOREACH f = [1..3] %][% IF loop.first %][% CLEAR %][% END %][% f %][% END %]" => "123" ok 615 - Line 903 "[% FOREACH f = [1..3] %][% f %][% IF loop.last %][% CLEAR %][% END %][% END %]" => "" ok 616 - Line 904 "[% FOREACH f = [1..3] %][% IF loop.last %][% CLEAR %][% END %][% f %][% END %]" => "3" ### post opererative directives ###################################### ok 617 - Line 909 "[% GET foo IF 1 %]" => "1" ok 618 - Line 910 "[% f FOREACH f = [1..3] %]" => "123" ok 619 - Line 912 "2[% GET foo IF 1 IF 2 %]" => "21" ok 620 - Line 913 "2[% GET foo IF 1 IF 0 %]" => "2" ok 621 - Line 914 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 622 - Line 915 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 623 - Line 916 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 624 - Line 917 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 625 - Line 918 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 626 - Line 920 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 627 - Line 921 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 628 - Line 923 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ######################################################## ok 629 - Line 928 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 630 - Line 929 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 631 - Line 930 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 632 - Line 931 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 633 - Line 932 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################################# ok 634 - Line 937 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 635 - Line 938 "[% TAGS default %][% 1 + 2 %]" => "3" ok 636 - Line 939 "[% TAGS html %]" => "3" ok 637 - Line 940 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 638 - Line 941 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 639 - Line 942 "[% TAGS php %]" => "3" ok 640 - Line 943 "[% TAGS star %][* 1 + 2 *]" => "3" ok 641 - Line 944 "[% TAGS template %][% 1 + 2 %]" => "3" ok 642 - Line 945 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 643 - Line 946 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 644 - Line 947 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 645 - Line 949 "[% TAGS html %] " => "3" ok 646 - Line 950 "[% TAGS html %]" => "3" ok 647 - Line 951 "[% TAGS html %] # " => "3" ok 648 - Line 952 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 649 - Line 953 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 650 - Line 955 "[% TAGS %]" => "3" ok 651 - Line 957 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 652 - Line 958 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 653 - Line 959 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 654 - Line 960 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 655 - Line 961 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 656 - Line 962 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 657 - Line 964 "[% TAGS html -->" => "3" ok 658 - Line 965 "[% TAGS html ; 7 -->" => "73" ok 659 - Line 966 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE #################################################### ok 660 - Line 971 "[% SWITCH 1 %][% END %]hi" => "hi" ok 661 - Line 972 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 662 - Line 973 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 663 - Line 974 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 664 - Line 975 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 665 - Line 976 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 666 - Line 977 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 667 - Line 978 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 668 - Line 979 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 669 - Line 981 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ###################################### ok 670 - Line 986 "[% TRY %][% END %]hi" => "hi" ok 671 - Line 987 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 672 - Line 988 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "" ok 673 - Line 989 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 674 - Line 990 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 675 - Line 991 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 676 - Line 992 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "" ok 677 - Line 993 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 678 - Line 995 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 679 - Line 996 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 680 - Line 997 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 681 - Line 998 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "" ok 682 - Line 1000 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 683 - Line 1001 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 684 - Line 1002 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 685 - Line 1003 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 686 - Line 1004 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ####################################################### ok 687 - Line 1010 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 688 - Line 1012 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################################## ok 689 - Line 1018 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 690 - Line 1019 "[% USE Foo %]one" => "one" ok 691 - Line 1020 "[% USE Foo2 %]one" => "one" ok 692 - Line 1021 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 693 - Line 1022 "[% USE Foo2(bar = 'baz') %]one[% Foo2.bar %]" => "onebarbaz" ok 694 - Line 1023 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 695 - Line 1024 "[% USE d = Foo(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 696 - Line 1025 "[% USE d.d = Foo(bar = 'baz') %]one[% d.d.bar %]" => "" ok 697 - Line 1027 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 698 - Line 1028 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 699 - Line 1031 "[% USE Foo %]one" => "one" ### MACRO ############################################################ ok 700 - Line 1036 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 701 - Line 1037 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 702 - Line 1038 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 703 - Line 1039 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 704 - Line 1040 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 705 - Line 1041 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 706 - Line 1042 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ### DEBUG ############################################################ ok 707 - Line 1047 " # [% one %]" => " # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 708 - Line 1048 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 709 - Line 1049 "[% one %] # " => "(1)ONE # " ok 710 - Line 1050 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 711 - Line 1051 "[% one; # one %]" => "(1)ONE(2)ONE" ok 712 - Line 1053 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 713 - Line 1055 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 714 - Line 1056 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - def is undefined # " ### constants ######################################################## ok 715 - Line 1075 "[% constants.harry %]" => "do_this_once" ok 716 - Line 1076 "[% constants.harry.length %]" => "12" ok 717 - Line 1077 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 718 - Line 1078 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 719 - Line 1079 "[% constants.foo.${constants.bang} %]" => "57" ok 720 - Line 1081 "[% constants.${"harry"} %]" => "do_this_once" ok 721 - Line 1083 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### INTERPOLATE ###################################################### ok 722 - Line 1088 "Foo $one Bar" => "Foo ONE Bar" ok 723 - Line 1089 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 724 - Line 1090 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 725 - Line 1094 "Foo \ Bar" => "Foo \ Bar" ok 726 - Line 1095 "Foo \\ Bar" => "Foo \\ Bar" ok 727 - Line 1096 "Foo \n Bar" => "Foo \n Bar" ok 728 - Line 1097 "Foo \$a Bar" => "Foo $a Bar" ok 729 - Line 1098 "Foo \\$a Bar" => "Foo \\7 Bar" ok 730 - Line 1099 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 731 - Line 1100 "Foo $a.B Bar" => "Foo 7 Bar" ok 732 - Line 1101 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 733 - Line 1102 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 734 - Line 1104 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 735 - Line 1105 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 736 - Line 1106 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 737 - Line 1107 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 738 - Line 1108 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ### ANYCASE / TRIM ################################################### ok 739 - Line 1115 "[% GET %]" => "" ok 740 - Line 1116 "[% GET GET %]" => "ONE" ok 741 - Line 1117 "[% get one %]" => "ONE" ok 742 - Line 1118 "[% get %]" => "" ok 743 - Line 1119 "[% get get %]" => "ONE" ok 744 - Line 1121 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 745 - Line 1122 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => "hi" ok 746 - Line 1123 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi" ok 747 - Line 1124 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi" ok 748 - Line 1125 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => "hi" ok 749 - Line 1126 "A[% TRY %] # hi # [% END %]" => "A # hi" ### V1DOLLAR ######################################################### ok 750 - Line 1133 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 751 - Line 1134 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 752 - Line 1137 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 753 - Line 1138 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 754 - Line 1140 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 755 - Line 1141 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 756 - Line 1142 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 757 - Line 1143 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 758 - Line 1145 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ################################################ ok 759 - Line 1150 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 760 - Line 1155 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 761 - Line 1159 "[% ('a' == 'b') || 0 %]" => "0" ok 762 - Line 1160 "[% ('a' != 'b') || 0 %]" => "1" ok 763 - Line 1161 "[% ('a' == 'b') || 0 %]" => "0" ok 764 - Line 1162 "[% ('a' != 'b') || 0 %]" => "1" ok 765 - Line 1163 "[% ('a' == 'b') || 0 %]" => "1" ok 766 - Line 1164 "[% ('a' != 'b') || 0 %]" => "0" ok 767 - Line 1166 "[% ('7' == '7.0') || 0 %]" => "1" ok 768 - Line 1167 "[% (7 == 7.0) || 0 %]" => "1" ok 769 - Line 1168 "[% (7 == 7.0) || 0 %]" => "1" ### configuration #################################################### ok 770 - Line 1173 "[% a = 7 %]$a" => "7" ok 771 - Line 1174 "[% a = 7 %]$a" => "7" ### PERL ############################################################# ok 772 - Line 1179 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 773 - Line 1180 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 774 - Line 1181 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 775 - Line 1182 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 776 - Line 1183 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################################# ### META ############################################################# ok 777 - Line 1193 "[% template.name %]" => "input text" ok 778 - Line 1194 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 779 - Line 1195 "[% META name = 'bar' %][% template.name %]" => "bar" ok 780 - Line 1196 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 781 - Line 1197 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 782 - Line 1198 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ####################################################### ok 783 - Line 1203 "[% a=3; b=\a; b; a %]" => "33" ok 784 - Line 1204 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 785 - Line 1206 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 786 - Line 1207 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 787 - Line 1209 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 788 - Line 1210 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 789 - Line 1212 "[% \a %]" => "CODE(0x878f228)" ok 790 - Line 1213 "[% b=\a; b %]" => "a sub []" ok 791 - Line 1214 "[% b=\a(1); b %]" => "a sub [1]" ok 792 - Line 1215 "[% b=\a; b(2) %]" => "a sub [2]" ok 793 - Line 1216 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 794 - Line 1217 "[% f=\j.k; j.k=7; f %]" => "7" ok 795 - Line 1219 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 796 - Line 1220 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 797 - Line 1221 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 798 - Line 1222 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 799 - Line 1224 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 800 - Line 1225 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################################### ok 801 - Line 1236 "[% GET %]" => "" ok 802 - Line 1237 "[% GET GET %]" => "named_get" ok 803 - Line 1238 "[% GET get %]" => "lower_named_get" ok 804 - Line 1239 "[% GET ${'GET'} %]" => "bar" ok 805 - Line 1241 "[% GET = 1 %][% GET GET %]" => "" ok 806 - Line 1242 "[% SET GET = 1 %][% GET GET %]" => "1" ok 807 - Line 1244 "[% GET $hold_get %]" => "named_get" ok 808 - Line 1245 "[% GET $GET %]" => "value of named_get" ok 809 - Line 1246 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 810 - Line 1247 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 811 - Line 1248 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 812 - Line 1249 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################################### ok 813 - Line 1254 "[% " \" " %]" => " " " ok 814 - Line 1255 "[% " \$foo " %]" => " $foo " ok 815 - Line 1256 "[% " \${foo} " %]" => " ${foo} " ok 816 - Line 1257 "[% " \n " %]" => " # " ok 817 - Line 1258 "[% " \t " %]" => " " ok 818 - Line 1259 "[% " \r " %]" => " " ok 819 - Line 1261 "[% 'foo\'bar' %]" => "foo'bar" ok 820 - Line 1262 "[% "foo\"bar" %]" => "foo"bar" ok 821 - Line 1263 "[% qw(foo \)).1 %]" => ")" ok 822 - Line 1264 "[% qw|foo \||.1 %]" => "|" ok 823 - Line 1266 "[% ' \' ' %]" => " ' " ok 824 - Line 1267 "[% ' \r ' %]" => " \r " ok 825 - Line 1268 "[% ' \n ' %]" => " \n " ok 826 - Line 1269 "[% ' \t ' %]" => " \t " ok 827 - Line 1270 "[% ' $foo ' %]" => " $foo " ok 828 - Line 1272 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 829 - Line 1273 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 830 - Line 1274 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 831 - Line 1275 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 832 - Line 1276 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 833 - Line 1277 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 834 - Line 1278 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 835 - Line 1280 "[% "[%" %]" => "[%" ok 836 - Line 1281 "[% "%]" %]" => "%]" ok 837 - Line 1282 "[% a = "[% %]" %][% a %]" => "[% %]" ok 838 - Line 1283 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 839 - Line 1285 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ok 840 - Line 1286 "[% qw([% 1 + 2 %]).join | eval %]" => "3" ### EVALUATE ######################################################### ok 841 - Line 1295 "[% b=23; f = ">[% b %]"; EVALUATE f %]" => ">23" ### DUMP ############################################################# ok 842 - Line 1305 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = ''; # " ok 843 - Line 1306 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 a = '';" ok 844 - Line 1307 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 845 - Line 1308 "[% # p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 846 - Line 1309 "[% p = DUMP a, b; p|collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', '' ];" ok 847 - Line 1310 "[% p = DUMP a Useqq => 'b'; p|collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 848 - Line 1311 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 849 - Line 1312 "[% p = DUMP a; p|collapse %]|foo" => "|foo" ok 850 - Line 1313 "[% p = DUMP _a, b; p|collapse %]" => "DUMP: File "input text" line 1 _a, b = [ '', 'c' ];" ok 851 - Line 1314 "[% p = DUMP {a => 'b'}; p|collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 852 - Line 1315 "[% p = DUMP _a; p|collapse %]" => "DUMP: File "input text" line 1 _a = '';" ok 853 - Line 1316 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 854 - Line 1317 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 855 - Line 1318 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 856 - Line 1319 "[% p = DUMP a; p|collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 857 - Line 1320 "[% p = DUMP a; p|collapse %]" => "a = 's';" ok 858 - Line 1321 "[% p = DUMP a; p|collapse %]" => "
a = 's'; 
" ok 859 - Line 1323 "[% p = DUMP a; p|collapse %]" => "
a = 's'; 
" ok 860 - Line 1324 "[% p = DUMP a; p|collapse %]" => "a = 's';" ok 861 - Line 1326 "[% SET global; p = DUMP; p|collapse %]" => "DUMP: File "input text" line 1 EntireStash = bless( { '0' => sub { "DUMMY" }, 'Hash' => { 'Hash' => sub { "DUMMY" }, 'List' => sub { "DUMMY" }, 'Text' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'delete' => sub { "DUMMY" }, 'each' => sub { "DUMMY" }, 'exists' => sub { "DUMMY" }, 'fmt' => EntireStash->{'Hash'}{'Text'}, 'hash' => EntireStash->{'Hash'}{'Hash'}, 'import' => sub { "DUMMY" }, 'item' => sub { "DUMMY" }, 'items' => sub { "DUMMY" }, 'keys' => sub { "DUMMY" }, 'list' => EntireStash->{'Hash'}{'List'}, 'new' => sub { "DUMMY" }, 'nsort' => sub { "DUMMY" }, 'null' => sub { "DUMMY" }, 'pairs' => sub { "DUMMY" }, 'size' => sub { "DUMMY" }, 'sort' => sub { "DUMMY" }, 'values' => sub { "DUMMY" } }, 'List' => { 'Hash' => sub { "DUMMY" }, 'List' => sub { "DUMMY" }, 'Text' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'first' => sub { "DUMMY" }, 'fmt' => EntireStash->{'List'}{'Text'}, 'grep' => sub { "DUMMY" }, 'hash' => EntireStash->{'List'}{'Hash'}, 'import' => sub { "DUMMY" }, 'item' => sub { "DUMMY" }, 'join' => sub { "DUMMY" }, 'last' => sub { "DUMMY" }, 'list' => EntireStash->{'List'}{'List'}, 'max' => sub { "DUMMY" }, 'merge' => sub { "DUMMY" }, 'new' => sub { "DUMMY" }, 'nsort' => sub { "DUMMY" }, 'null' => sub { "DUMMY" }, 'pick' => sub { "DUMMY" }, 'pop' => sub { "DUMMY" }, 'push' => sub { "DUMMY" }, 'reverse' => sub { "DUMMY" }, 'shift' => sub { "DUMMY" }, 'size' => sub { "DUMMY" }, 'slice' => sub { "DUMMY" }, 'sort' => sub { "DUMMY" }, 'splice' => sub { "DUMMY" }, 'unique' => sub { "DUMMY" }, 'unshift' => sub { "DUMMY" } }, 'Text' => { '0' => EntireStash->{'0'}, 'Hash' => sub { "DUMMY" }, 'List' => sub { "DUMMY" }, 'Text' => sub { "DUMMY" }, 'abs' => sub { "DUMMY" }, 'atan2' => sub { "DUMMY" }, 'chunk' => sub { "DUMMY" }, 'collapse' => sub { "DUMMY" }, 'cos' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'exp' => sub { "DUMMY" }, 'fmt' => EntireStash->{'Text'}{'Text'}, 'format' => sub { "DUMMY" }, 'hash' => EntireStash->{'Text'}{'Hash'}, 'hex' => sub { "DUMMY" }, 'html' => sub { "DUMMY" }, 'indent' => sub { "DUMMY" }, 'int' => sub { "DUMMY" }, 'item' => sub { "DUMMY" }, 'js' => sub { "DUMMY" }, 'lc' => sub { "DUMMY" }, 'lcfirst' => sub { "DUMMY" }, 'length' => sub { "DUMMY" }, 'list' => EntireStash->{'Text'}{'List'}, 'log' => sub { "DUMMY" }, 'lower' => sub { "DUMMY" }, 'match' => sub { "DUMMY" }, 'new' => sub { "DUMMY" }, 'null' => sub { "DUMMY" }, 'oct' => sub { "DUMMY" }, 'rand' => sub { "DUMMY" }, 'remove' => sub { "DUMMY" }, 'repeat' => sub { "DUMMY" }, 'replace' => sub { "DUMMY" }, 'search' => sub { "DUMMY" }, 'sin' => sub { "DUMMY" }, 'size' => sub { "DUMMY" }, 'split' => sub { "DUMMY" }, 'sprintf' => sub { "DUMMY" }, 'sqrt' => sub { "DUMMY" }, 'srand' => sub { "DUMMY" }, 'stderr' => sub { "DUMMY" }, 'substr' => sub { "DUMMY" }, 'trim' => sub { "DUMMY" }, 'uc' => sub { "DUMMY" }, 'ucfirst' => sub { "DUMMY" }, 'upper' => sub { "DUMMY" }, 'uri' => sub { "DUMMY" }, 'url' => sub { "DUMMY" } }, 'a' => 'b', 'abs' => EntireStash->{'Text'}{'abs'}, 'atan2' => EntireStash->{'Text'}{'atan2'}, 'chunk' => sub { "DUMMY" }, 'component' => bless( { 'modtime' => 1194955099, 'name' => 'input text' }, 'Template::Document' ), 'cos' => EntireStash->{'Text'}{'cos'}, 'dec' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'exp' => EntireStash->{'Text'}{'exp'}, 'fmt' => EntireStash->{'Text'}{'Text'}, 'global' => '', 'hash' => sub { "DUMMY" }, 'hex' => EntireStash->{'Text'}{'hex'}, 'inc' => sub { "DUMMY" }, 'int' => EntireStash->{'Text'}{'int'}, 'item' => sub { "DUMMY" }, 'js' => EntireStash->{'Text'}{'js'}, 'lc' => EntireStash->{'Text'}{'lc'}, 'length' => sub { "DUMMY" }, 'list' => sub { "DUMMY" }, 'log' => EntireStash->{'Text'}{'log'}, 'match' => sub { "DUMMY" }, 'oct' => EntireStash->{'Text'}{'oct'}, 'rand' => EntireStash->{'Text'}{'rand'}, 'remove' => sub { "DUMMY" }, 'repeat' => sub { "DUMMY" }, 'replace' => sub { "DUMMY" }, 'search' => sub { "DUMMY" }, 'sin' => EntireStash->{'Text'}{'sin'}, 'size' => sub { "DUMMY" }, 'split' => sub { "DUMMY" }, 'sprintf' => EntireStash->{'Text'}{'sprintf'}, 'sqrt' => EntireStash->{'Text'}{'sqrt'}, 'substr' => sub { "DUMMY" }, 'template' => EntireStash->{'component'}, 'textjoin' => sub { "DUMMY" }, 'uc' => EntireStash->{'Text'}{'uc'} }, 'Template::Stash' );" ok 862 - Line 1327 "[% SET global; p = DUMP; p|collapse %]" => "DUMP: File "input text" line 1 EntireStash = bless( { '0' => sub { "DUMMY" }, 'Hash' => { 'Hash' => sub { "DUMMY" }, 'List' => sub { "DUMMY" }, 'Text' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'delete' => sub { "DUMMY" }, 'each' => sub { "DUMMY" }, 'exists' => sub { "DUMMY" }, 'fmt' => EntireStash->{'Hash'}{'Text'}, 'hash' => EntireStash->{'Hash'}{'Hash'}, 'import' => sub { "DUMMY" }, 'item' => sub { "DUMMY" }, 'items' => sub { "DUMMY" }, 'keys' => sub { "DUMMY" }, 'list' => EntireStash->{'Hash'}{'List'}, 'new' => sub { "DUMMY" }, 'nsort' => sub { "DUMMY" }, 'null' => sub { "DUMMY" }, 'pairs' => sub { "DUMMY" }, 'size' => sub { "DUMMY" }, 'sort' => sub { "DUMMY" }, 'values' => sub { "DUMMY" } }, 'List' => { 'Hash' => sub { "DUMMY" }, 'List' => sub { "DUMMY" }, 'Text' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'first' => sub { "DUMMY" }, 'fmt' => EntireStash->{'List'}{'Text'}, 'grep' => sub { "DUMMY" }, 'hash' => EntireStash->{'List'}{'Hash'}, 'import' => sub { "DUMMY" }, 'item' => sub { "DUMMY" }, 'join' => sub { "DUMMY" }, 'last' => sub { "DUMMY" }, 'list' => EntireStash->{'List'}{'List'}, 'max' => sub { "DUMMY" }, 'merge' => sub { "DUMMY" }, 'new' => sub { "DUMMY" }, 'nsort' => sub { "DUMMY" }, 'null' => sub { "DUMMY" }, 'pick' => sub { "DUMMY" }, 'pop' => sub { "DUMMY" }, 'push' => sub { "DUMMY" }, 'reverse' => sub { "DUMMY" }, 'shift' => sub { "DUMMY" }, 'size' => sub { "DUMMY" }, 'slice' => sub { "DUMMY" }, 'sort' => sub { "DUMMY" }, 'splice' => sub { "DUMMY" }, 'unique' => sub { "DUMMY" }, 'unshift' => sub { "DUMMY" } }, 'Text' => { '0' => EntireStash->{'0'}, 'Hash' => sub { "DUMMY" }, 'List' => sub { "DUMMY" }, 'Text' => sub { "DUMMY" }, 'abs' => sub { "DUMMY" }, 'atan2' => sub { "DUMMY" }, 'chunk' => sub { "DUMMY" }, 'collapse' => sub { "DUMMY" }, 'cos' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'exp' => sub { "DUMMY" }, 'fmt' => EntireStash->{'Text'}{'Text'}, 'format' => sub { "DUMMY" }, 'hash' => EntireStash->{'Text'}{'Hash'}, 'hex' => sub { "DUMMY" }, 'html' => sub { "DUMMY" }, 'indent' => sub { "DUMMY" }, 'int' => sub { "DUMMY" }, 'item' => sub { "DUMMY" }, 'js' => sub { "DUMMY" }, 'lc' => sub { "DUMMY" }, 'lcfirst' => sub { "DUMMY" }, 'length' => sub { "DUMMY" }, 'list' => EntireStash->{'Text'}{'List'}, 'log' => sub { "DUMMY" }, 'lower' => sub { "DUMMY" }, 'match' => sub { "DUMMY" }, 'new' => sub { "DUMMY" }, 'null' => sub { "DUMMY" }, 'oct' => sub { "DUMMY" }, 'rand' => sub { "DUMMY" }, 'remove' => sub { "DUMMY" }, 'repeat' => sub { "DUMMY" }, 'replace' => sub { "DUMMY" }, 'search' => sub { "DUMMY" }, 'sin' => sub { "DUMMY" }, 'size' => sub { "DUMMY" }, 'split' => sub { "DUMMY" }, 'sprintf' => sub { "DUMMY" }, 'sqrt' => sub { "DUMMY" }, 'srand' => sub { "DUMMY" }, 'stderr' => sub { "DUMMY" }, 'substr' => sub { "DUMMY" }, 'trim' => sub { "DUMMY" }, 'uc' => sub { "DUMMY" }, 'ucfirst' => sub { "DUMMY" }, 'upper' => sub { "DUMMY" }, 'uri' => sub { "DUMMY" }, 'url' => sub { "DUMMY" } }, 'a' => 'b', 'abs' => EntireStash->{'Text'}{'abs'}, 'atan2' => EntireStash->{'Text'}{'atan2'}, 'chunk' => sub { "DUMMY" }, 'component' => bless( { 'modtime' => 1194955099, 'name' => 'input text' }, 'Template::Document' ), 'cos' => EntireStash->{'Text'}{'cos'}, 'dec' => sub { "DUMMY" }, 'defined' => sub { "DUMMY" }, 'exp' => EntireStash->{'Text'}{'exp'}, 'fmt' => EntireStash->{'Text'}{'Text'}, 'global' => '', 'hash' => sub { "DUMMY" }, 'hex' => EntireStash->{'Text'}{'hex'}, 'inc' => sub { "DUMMY" }, 'int' => EntireStash->{'Text'}{'int'}, 'item' => sub { "DUMMY" }, 'js' => EntireStash->{'Text'}{'js'}, 'lc' => EntireStash->{'Text'}{'lc'}, 'length' => sub { "DUMMY" }, 'list' => sub { "DUMMY" }, 'log' => EntireStash->{'Text'}{'log'}, 'match' => sub { "DUMMY" }, 'oct' => EntireStash->{'Text'}{'oct'}, 'rand' => EntireStash->{'Text'}{'rand'}, 'remove' => sub { "DUMMY" }, 'repeat' => sub { "DUMMY" }, 'replace' => sub { "DUMMY" }, 'search' => sub { "DUMMY" }, 'sin' => EntireStash->{'Text'}{'sin'}, 'size' => sub { "DUMMY" }, 'split' => sub { "DUMMY" }, 'sprintf' => EntireStash->{'Text'}{'sprintf'}, 'sqrt' => EntireStash->{'Text'}{'sqrt'}, 'substr' => sub { "DUMMY" }, 'template' => EntireStash->{'component'}, 'textjoin' => sub { "DUMMY" }, 'uc' => EntireStash->{'Text'}{'uc'} }, 'Template::Stash' );" ok 863 - Line 1328 "[% SET global; p = DUMP; p|collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################################### ok 864 - Line 1335 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 865 - Line 1336 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 866 - Line 1337 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 867 - Line 1338 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 868 - Line 1339 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 869 - Line 1340 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 870 - Line 1341 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 871 - Line 1344 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 872 - Line 1345 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 873 - Line 1346 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 874 - Line 1348 "" => "FOO" ok 875 - Line 1349 "" => "7 8" ok 876 - Line 1350 "" => "1" ok 877 - Line 1351 "" => "1" ok 878 - Line 1352 "d" => "" ### CONFIG ########################################################### ok 879 - Line 1364 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 880 - Line 1365 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 881 - Line 1366 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 882 - Line 1367 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 883 - Line 1368 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 884 - Line 1369 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 885 - Line 1370 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 886 - Line 1372 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 887 - Line 1374 "[% CONFIG BOGUS => 2 %]bar" => "" ok 888 - Line 1376 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 889 - Line 1377 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 890 - Line 1379 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 891 - Line 1380 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 892 - Line 1382 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 893 - Line 1383 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 894 - Line 1387 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 895 - Line 1388 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ### DONE ############################################################# ok t/7_template_04_html_template....1..87 ok 1 - Got a test dir up and running ### VAR ############################################################## ok 2 - Line 73 "Foo" => "Foo" ok 3 - Line 75 "" => "FOO" ok 4 - Line 76 "" => "FOO" ok 5 - Line 77 "" => "FOO" ok 6 - Line 78 "" => "FOO" ok 7 - Line 79 "" => "FOO" ok 8 - Line 80 "" => "FOO" ok 9 - Line 81 "" => "FOO" ok 10 - Line 82 "" => "FOO" ok 11 - Line 84 "" => "<>" ok 12 - Line 85 "" => "<>" ok 13 - Line 86 "" => "<>" ok 14 - Line 87 "" => "<>" ok 15 - Line 88 "" => "<>" ok 16 - Line 89 "" => "<>" ok 17 - Line 90 "" => "<>" ok 18 - Line 91 "" => "<>" ok 19 - Line 92 "" => "<>" ok 20 - Line 93 "" => "%3C%3E" ok 21 - Line 96 "" => "<>" ok 22 - Line 97 "" => "<>" ok 23 - Line 98 "" => "<>" ok 24 - Line 99 "" => "<>" ok 25 - Line 101 "" => "FOO" ok 26 - Line 102 "d" => "bard" ok 27 - Line 103 "d" => "bard" ok 28 - Line 104 "d" => "bard" ok 29 - Line 106 "" => "FOO" ok 30 - Line 107 "" => "FOO" ### IF / ELSE / UNLESS ############################################### ok 31 - Line 112 "bar" => "" ok 32 - Line 113 "bar" => "bar" ok 33 - Line 114 "barbing" => "bing" ok 34 - Line 115 "barbing" => "bar" ok 35 - Line 116 "bar" => "bar" ok 36 - Line 117 "bar" => "" ok 37 - Line 119 "barbaz" => "" ok 38 - Line 120 "barbaz" => "" ### INCLUDE ########################################################## ok 39 - Line 125 "bar" => "" ok 40 - Line 126 "" => "Good Day!" ok 41 - Line 127 "" => "Good Day!" ok 42 - Line 128 "" => "Good Day!" ok 43 - Line 131 "" => "" ok 44 - Line 132 "" => "" ok 45 - Line 134 "" => "Good Day!" ok 46 - Line 135 "" => "Good Day!" ok 47 - Line 136 "" => "Good Day!" ok 48 - Line 138 "" => "()" ok 49 - Line 139 "" => "(hi)" ### EXPR ############################################################# ok 50 - Line 144 "" => "" ok 51 - Line 145 "" => "" ### LOOP ############################################################# ok 52 - Line 151 "foo" => "foo" ok 53 - Line 152 "Hifoo" => "foo" ok 54 - Line 153 "Hifoo" => "Hifoo" ok 55 - Line 154 "Hifoo" => "HiHifoo" ok 56 - Line 155 "()foo" => "(1)(2)(3)foo" ok 57 - Line 156 "()foo" => "(1)(2)(3)foo" ok 58 - Line 157 "()foo" => "(1)(2)(3)foo" ok 59 - Line 158 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 60 - Line 160 "()()foo" => "(1)()(2)()(3)()foo" ok 61 - Line 161 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 62 - Line 163 "()foo" => "(1)()(3)foo" ok 63 - Line 165 " # (||||)foo" => " # (||||) # (||||) # (||||)foo" ok 64 - Line 171 " # (||||)foo" => " # (1|0|1|0|1) # (0|0|0|1|2) # (0|1|1|0|3)foo" ok 65 - Line 176 " # (||||)foo" => " # (1|0|1|0|1) # (0|0|0|1|2) # (0|1|1|0|3)foo" ### TT3 DIRECTIVES ################################################### ok 66 - Line 185 "" => "FOO" ok 67 - Line 186 "" => "" ok 68 - Line 187 "" => "" ok 69 - Line 188 "" => "10" ok 70 - Line 190 "barweebing" => "bar" ok 71 - Line 192 "()" => "(foo)" ok 72 - Line 193 "()" => "(foo)" ok 73 - Line 194 "()" => "(1)(2)(3)" ok 74 - Line 196 "()" => "(bar)" ok 75 - Line 197 "()" => "(bar)" ok 76 - Line 199 "" => "bar" ok 77 - Line 201 "You said " => "You said hello" ### TT3 CHOMPING ##################################################### ok 78 - Line 206 " # " => " # FOO" ok 79 - Line 207 " # " => "FOO" ok 80 - Line 208 " # <-TMPL_GET foo>" => "FOO" ### TT3 INTERPOLATE ################################################## ok 81 - Line 213 "$foo ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 82 - Line 214 "$foo ${ 1 + 2 }" => "FOO FOO 3" ok 83 - Line 215 " 1>$foo ${ 1 + 2 }" => "FOO FOO 3" ok 84 - Line 217 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 85 - Line 218 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 86 - Line 219 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 87 - Line 220 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ### DONE ############################################################# ok t/7_template_05_text_tmpl........1..44 ok 1 - Got a test dir up and running ### ECHO ############################################################# ok 2 - Line 73 "Foo" => "Foo" ok 3 - Line 75 "\#[echo $foo]\#bar" => "bar" ok 4 - Line 76 "\#[echo $foo]\#" => "FOO" ok 5 - Line 77 "\#[echo $foo $foo]\#" => "FOOFOO" ok 6 - Line 78 "\#[echo $foo "bar" $foo]\#" => "FOObarFOO" ok 7 - Line 79 "\#[echo "hi"]\#" => "hi" ok 8 - Line 80 "\#[echo 'hi']\#" => "hi" ok 9 - Line 81 "\#[echo foo]\#" => "FOO" ### COMMENT ########################################################## ok 10 - Line 86 "\#[comment]\# Hi there \#[endcomment]\#bar" => "bar" ok 11 - Line 87 "\#[comment]\# Hi there \#[end]\#bar" => "bar" ### IF / ELSIF / ELSE / IFN ########################################## ok 12 - Line 92 "\#[if $foo]\#bar\#[endif]\#bar" => "bar" ok 13 - Line 93 "\#[if "1"]\#bar\#[endif]\#" => "bar" ok 14 - Line 94 "\#[if $foo]\#bar\#[endif]\#" => "" ok 15 - Line 95 "\#[if $foo]\#bar\#[endif]\#" => "bar" ok 16 - Line 96 "\#[ifn $foo]\#bar\#[endifn]\#" => "bar" ok 17 - Line 97 "\#[ifn $foo]\#bar\#[endifn]\#" => "" ok 18 - Line 98 "\#[if foo]\#bar\#[endif]\#" => "" ok 19 - Line 99 "\#[if foo]\#bar\#[endif]\#" => "bar" ok 20 - Line 100 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bing" ok 21 - Line 101 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bar" ok 22 - Line 102 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bar" ok 23 - Line 103 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "wee" ok 24 - Line 104 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bing" ### INCLUDE ########################################################## ok 25 - Line 110 "\#[include "foo.tmpl"]\#" => "Good Day!" ok 26 - Line 113 "\#[include "bar.tmpl"]\#" => "()" ok 27 - Line 114 "\#[include "bar.tmpl"]\#" => "(hi)" ### LOOP ############################################################# ok 28 - Line 119 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "foo" ### TT3 DIRECTIVES ################################################### ok 29 - Line 129 "\#[GET foo]\#" => "FOO" ok 30 - Line 130 "\#[GET 1+2+3+4]\#" => "10" ok 31 - Line 132 "\#[IF foo]\#bar\#[ELSIF wow]\#wee\#[ELSE]\#bing\#[ENDIF]\#" => "bar" ok 32 - Line 134 "\#[SET i = "foo"]\#(\#[VAR i]\#)" => "(foo)" ok 33 - Line 135 "\#[SET i = "foo"]\#(\#[GET i]\#)" => "(foo)" ok 34 - Line 136 "\#[FOR i IN [1..3]]\#(\#[VAR i]\#)\#[END]\#" => "(1)(2)(3)" ok 35 - Line 138 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[PROCESS foo i="bar"]\#" => "(bar)" ok 36 - Line 139 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[SET wow = PROCESS foo i="bar"]\#\#[VAR wow]\#" => "(bar)" ok 37 - Line 141 "\#[GET template.foo]\#\#[META foo = "bar"]\#" => "bar" ok 38 - Line 143 "\#[MACRO bar(n) BLOCK]\#You said \#[VAR n]\#\#[END]\#\#[GET bar("hello")]\#" => "You said hello" ### TT3 CHOMPING ##################################################### ok 39 - Line 148 " # \#[GET foo]\#" => " # FOO" ok 40 - Line 149 "\#[GET foo-]\# # " => "FOO" ok 41 - Line 150 " # \#[-GET foo]\#" => "FOO" ### TT3 INTERPOLATE ################################################## ok 42 - Line 155 "$foo \#[GET foo]\# ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 43 - Line 156 "$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ok 44 - Line 157 "\#[CONFIG INTERPOLATE => 1]\#$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ### DONE ############################################################# ok t/7_template_06_velocity.........1..87 ok 1 - Got a test dir up and running ### VARIABLES ######################################################## ok 2 - Line 74 "Foo" => "Foo" ok 3 - Line 75 "$mud_Slinger_9" => "bar" ok 4 - Line 76 "$!mud_Slinger_9" => "bar" ok 5 - Line 77 "${mud_Slinger_9}" => "bar" ok 6 - Line 78 "$!{mud_Slinger_9}" => "bar" ok 7 - Line 80 "$!mud_Slinger_9<<" => "<<" ok 8 - Line 82 "$!{mud_Slinger_9}<<" => "<<" ### SET ############################################################## ok 9 - Line 87 "\#set($foo = "bar")$foo" => "bar" ok 10 - Line 89 "\#set($monkey = $bill)$monkey" => "Bill" ok 11 - Line 90 "\#set($monkey.Friend = 'monica')$monkey.Friend" => "monica" ok 12 - Line 91 "\#set($monkey.Blame = $whitehouse.Leak)$monkey.Blame" => "from_velocity_ref_guide" ok 13 - Line 92 "\#set($monkey.Plan = $spindoctor.weave($web))$monkey.Plan" => "(spider)" ok 14 - Line 93 "\#set($monkey.Number = 123)$monkey.Number" => "123" ok 15 - Line 94 "\#set($monkey.Numbers = [1..3])$monkey.Numbers.2" => "3" ok 16 - Line 95 "\#set($monkey.Map = {"banana" : "good"})$monkey.Map.banana" => "good" ok 17 - Line 97 "\#set($value = $foo + 1)$value" => "9" ok 18 - Line 98 "\#set($value = $bar - 1)$value" => "3" ok 19 - Line 99 "\#set($value = $foo * $bar)$value" => "32" ok 20 - Line 100 "\#set($value = $foo / $bar)$value" => "2" ok 21 - Line 101 "\#set($value = $foo % $bar)$value" => "0" ok 22 - Line 103 "\#set($!value = $foo + 1)$value" => "" ### QUOTED STRINGS ################################################### ok 23 - Line 108 "\#set($value = "($foo)")$value" => "(bar)" ok 24 - Line 109 "\#set($value = "(\#get($foo))")$value" => "(bar)" ok 25 - Line 110 "\#set($value = "($foo)")$value" => "(bar)" ok 26 - Line 111 "\#set($value = "(\#get($foo))")$value" => "(\#get(bar))" ok 27 - Line 112 "\#set($value = '($foo)')$value" => "($foo)" ok 28 - Line 113 "\#set($value = '(\#get($foo))')$value" => "(\#get($foo))" ok 29 - Line 116 "\#set($value = "(\#get($foo))")$value" => "()" ok 30 - Line 120 "\#set($value = "($!foo)")$value" => "()" ok 31 - Line 121 "\#set($value = "(\#get($!foo))")$value" => "" ok 32 - Line 122 "\#set($value = "($!foo)")$value" => "()" ok 33 - Line 123 "\#set($value = "(\#get($!foo))")$value" => "(\#get())" ### COMMENTS ######################################################### ok 34 - Line 128 "Foo\#\#interesting # Bar" => "FooBar" ok 35 - Line 129 "Foo\#\#interesting # Bar" => "Foo # Bar" ok 36 - Line 130 "Foo\#\#interesting" => "Foo" ok 37 - Line 131 "Foo\#*interesting # " => "" ok 38 - Line 132 "Foo\#*interesting # # *\#" => "Foo" ok 39 - Line 133 "Foo\#*interesting # # *\#Bar" => "FooBar" ### ESCAPING ######################################################### ok 40 - Line 138 "$email" => "foo" ok 41 - Line 139 "\$email" => "$email" ok 42 - Line 140 "\\$email" => "\foo" ok 43 - Line 141 "\\\$email" => "\$email" ok 44 - Line 144 "\$email" => "$email" ok 45 - Line 146 "\\\$email" => "\$email" ### IF / ELSEIF / ELSE ############################################### ok 46 - Line 151 "\#if($foo)bar\#{end}bar" => "bar" ok 47 - Line 152 "\#if("1")bar\#end" => "bar" ok 48 - Line 153 "\#if($foo)bar\#end" => "" ok 49 - Line 154 "\#if($foo)bar\#end" => "bar" ok 50 - Line 155 "\#if($foo)bar\#{else}baz\#end" => "bar" ok 51 - Line 156 "\#if($foo)bar\#{else}baz\#end" => "baz" ok 52 - Line 157 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "baz" ok 53 - Line 158 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "bang" ### FOREACH ######################################################### ok 54 - Line 163 "\#foreach( foo )bar\#{end}" => "bar" ok 55 - Line 164 "\#foreach( f IN foo )bar$f\#{end}" => "bar1bar2" ok 56 - Line 165 "\#foreach( f = foo )bar$f\#{end}" => "bar1bar2" ok 57 - Line 166 "\#foreach( f = [1,2] )bar$f\#{end}" => "bar1bar2" ok 58 - Line 167 "\#foreach( f = [1..3] )bar$f\#{end}" => "bar1bar2bar3" ok 59 - Line 168 "\#foreach( f = [{a=>'A'},{a=>'B'}] )bar$f.a\#{end}" => "barAbarB" ok 60 - Line 169 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}" => "barAbarB" ok 61 - Line 170 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}$!a" => "barAbarB" ok 62 - Line 171 "\#foreach( f = [1..3] )$loop.count/$loop.size \#{end}" => "1/3 2/3 3/3 " ### INCLUDE ########################################################## ok 63 - Line 177 "\#include("foo.vel")" => "Good Day!" ok 64 - Line 178 "\#parse($foo)" => "Good Day!" ok 65 - Line 179 "\#include("bar.vel")" => "($bar)" ok 66 - Line 180 "\#include("bar.vel")" => "($bar)" ### PARSE ############################################################# ok 67 - Line 185 "\#parse("foo.vel")" => "Good Day!" ok 68 - Line 186 "\#parse($foo)" => "Good Day!" ok 69 - Line 188 "\#parse("bar.vel")" => "(foo)" ### STOP ############################################################# ok 70 - Line 193 "\#stop" => "" ok 71 - Line 194 "One\#{stop}Two" => "One" ok 72 - Line 195 "\#block('foo')One\#{stop}Two\#{end}First\#process('foo')Last" => "FirstOne" ok 73 - Line 196 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#end$f\#end" => "112233" ok 74 - Line 197 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#stop\#end\#end" => "1" ok 75 - Line 198 "\#foreach( $f = [1..3] )\#if(loop.first)\#stop\#end$f\#end" => "" ### EVALUATE ######################################################### ### MACRO ############################################################ ok 76 - Line 209 "\#macro(foo PROCESS bar )\#block(bar)Hi\#end$foo" => "Hi" ok 77 - Line 210 "\#macro(foo BLOCK)Hi\#end$foo" => "Hi" ok 78 - Line 212 "\#macro(foo $n BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 79 - Line 214 "\#macro(foo(n) BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 80 - Line 217 "\#macro(foo $n)Hi$n\#end\#foo(2)" => "Hi2" ok 81 - Line 218 "\#macro(foo $n $m)Hi($n)($m)\#end\#foo(2 3)" => "Hi(2)(3)" ok 82 - Line 220 "\#macro( inner $foo ) # inner : $foo # \#end # \#macro( outer $foo ) # \#set($bar = "outerlala") # outer : $foo # \#end # \#set($bar = "calltimelala") # \#outer( "\#inner($bar)" )" => " outer : inner : calltimelala" ok 83 - Line 232 "\#macro( inner $foo ) # inner : $foo # \#end # \#macro( outer $foo ) # \#set($bar = "outerlala") # outer : $foo|eval # \#end # \#set($bar = "calltimelala") # \#outer( "\#inner('$bar')" )" => " outer : inner : outerlala" ### TT3 CHOMPING ##################################################### ok 84 - Line 247 " # \#get( $foo )" => " # FOO" ok 85 - Line 248 "\#get( $foo -) # " => "FOO" ok 86 - Line 249 " # \#get(- $foo)" => "FOO" ok 87 - Line 250 " # \#get( -$foo)" => " # -7" ### DONE ############################################################# ok All tests successful. Files=5, Tests=1137, 26 wallclock secs (24.07 cusr + 0.47 csys = 24.54 CPU) Installing /home/cpanrun/build/5.8.0/lib/site_perl/5.8.0/Template/Parser/CET.pm Installing /home/cpanrun/build/5.8.0/man/man3/Template::Parser::CET.3 Appending installation info to /home/cpanrun/build/5.8.0/lib/5.8.0/i686-linux-thread-multi/perllocal.pod