Checking if your kit is complete... Looks good Writing Makefile for Template::Alloy Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/Template/Alloy.pod blib\lib\Template\Alloy.pod cp lib/Template/Alloy/Exception.pm blib\lib\Template\Alloy\Exception.pm cp lib/Template/Alloy/Stream.pm blib\lib\Template\Alloy\Stream.pm cp lib/Template/Alloy/TT.pm blib\lib\Template\Alloy\TT.pm cp lib/Template/Alloy/Velocity.pm blib\lib\Template\Alloy\Velocity.pm cp lib/Template/Alloy/Context.pm blib\lib\Template\Alloy\Context.pm cp lib/Template/Alloy/Tmpl.pm blib\lib\Template\Alloy\Tmpl.pm cp lib/Template/Alloy/HTE.pm blib\lib\Template\Alloy\HTE.pm cp lib/Template/Alloy/Play.pm blib\lib\Template\Alloy\Play.pm cp lib/Template/Alloy.pm blib\lib\Template\Alloy.pm cp lib/Template/Alloy/VMethod.pm blib\lib\Template\Alloy\VMethod.pm cp lib/Template/Alloy/Iterator.pm blib\lib\Template\Alloy\Iterator.pm cp lib/Template/Alloy/Parse.pm blib\lib\Template\Alloy\Parse.pm cp lib/Template/Alloy/Operator.pm blib\lib\Template\Alloy\Operator.pm cp lib/Template/Alloy/Compile.pm blib\lib\Template\Alloy\Compile.pm Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. C:\cpanrun\build\5-10-0\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00_use..............1..43 ok 1 - use Template::Alloy; ok 2 - Parse role isn't loaded yet ok 3 - But it can parse anyway ok 4 - Parse role is now loaded ok 5 - Can't import invalid method ok 6 - Play role isn't loaded yet ok 7 - It can be imported () ok 8 - Play role is now loaded ok 9 - Compile role isn't loaded yet ok 10 - It can be imported () ok 11 - Compile role is now loaded ok 12 - It can be imported twice () ok 13 - Velocity role isn't loaded yet Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/Velocity.pm line 60. ok 14 - It can be imported () ok 15 - Velocity role is now loaded ok 16 - Tmpl role isn't loaded yet ok 17 - It can be imported () ok 18 - Tmpl role is now loaded ok 19 - Text::Tmpl isn't loaded ok 20 - It can be imported () ok 21 - Text::Tmpl is now loaded ok 22 - Text::Tmpl is a Template::Alloy ok 23 - It can be imported twice ok 24 - HTML::Template isn't loaded ok 25 - It can't be imported because another non-Alloy package already is using it ok 26 - HTML::Template is not a Template::Alloy ok 27 - HTML::Template::Expr isn't loaded Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/HTE.pm line 71. ok 28 - It can be imported () ok 29 - HTML::Template::Expr is now loaded ok 30 - HTML::Template::Expr is a Template::Alloy ok 31 - It can be imported twice ok 32 - TT role isn't loaded yet Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/TT.pm line 53. ok 33 - It can be imported via all () ok 34 - TT role is now loaded ok 35 - It can be imported twice () ok 36 - Template isn't loaded ok 37 - It can be imported () ok 38 - Template is now loaded ok 39 - Template is a Template::Alloy ok 40 - It can be imported twice ok 41 - Got an error on invalid methods (Can't locate object method "flabbergast" via package at t/00_use.t line 82 # ) ok 42 - Got an error on invalid methods (autoload error - Invalid method Template::Alloy::) ok 43 - Got an error on invalid methods (autoload error - Invalid method Template::Alloy::foo&bar) ok t/01_coverage.........1..31 ok 1 - use Template::Alloy; ok 2 - Initialize with hashref and get hashref based object ok 3 - Initialize with hash and get hashref based object ok 4 - Got an error for process_simple ok 5 - Got an error for process_simple ok 6 - Got an error for process_simple Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/TT.pm line 53. ok 7 - Ran process_simple without error ok 8 - Ran process_simple and threw error ok 9 - And got error ok 10 - Got right output ok 11 - Ran process_simple and stopped ok 12 - And got no error ok 13 - Got right output ok 14 - Ran _process ok 15 - And got error ok 16 - Got right output ok 17 - Ran _process and got error ok 18 - Ran _process ok 19 - And got error ok 20 - Got right output ok 21 - Ran _process (file error - foobar: not found) ok 22 - Ran _process (process error - No _perl and no _tree found) ok 23 - Ran _process ok 24 - Can't load_template without a file ok 25 - load_template assumes we know what we are doing if we pass a hash ok 26 - Can load a string block ok 27 - Can load a code block ok 28 - Can load a previously loaded template ok 29 - Can't load a poorly formed block ok 30 - Can't load a string block with parse errors ok 31 - Can't load a ref block ok t/02_cache............1..204 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ok 3 - Got a test dir up and running ok 4 - Line 137: Found bar.tt in t/02_cache.t.test_dir ok 5 - Line 138: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 6 - Line 139: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 7 - Line 140: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 8 - Line 141: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 9 - Line 142: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 10 - Not in GLOBAL_CACHE ### COMPILE_PERL => 0 ################################################ Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/TT.pm line 53. ok 11 - Line 152 "bar.tt" => "BlueBAR" ok 12 - Line 154: Found bar.tt in t/02_cache.t.test_dir ok 13 - Line 155: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 14 - Line 156: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 15 - Line 157: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 16 - Line 158: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 17 - Line 159: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 18 - Not in GLOBAL_CACHE ok 19 - Line 167 "bar.tt" => "BlueBAR" ok 20 - Line 169: Found bar.tt in t/02_cache.t.test_dir ok 21 - Line 170: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 22 - Line 171: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 23 - Line 172: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 24 - Line 173: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 25 - Line 174: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 26 - Is in GLOBAL_CACHE ok 27 - Line 183 "bar.tt" => "BlueBAR" ok 28 - Is in CACHE ok 29 - Line 190 "bar.tt" => "BlueBAR" ok 30 - Line 192: Found bar.tt in t/02_cache.t.test_dir ok 31 - Line 193: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 32 - Line 194: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 33 - Line 195: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 34 - Line 196: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 35 - Line 197: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 36 - Line 204 "bar.tt" => "BlueBAR" ok 37 - Line 206: Found bar.tt in t/02_cache.t.test_dir ok 38 - Line 207: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 39 - Line 208: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 40 - Line 209: Found t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 41 - Line 210: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 42 - Line 211: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 43 - Line 218 "bar.tt" => "BlueBAR" ok 44 - Line 220: Found bar.tt in t/02_cache.t.test_dir ok 45 - Line 221: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 46 - Line 222: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 47 - Line 223: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 48 - Line 224: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 49 - Line 225: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 50 - Is in GLOBAL_CACHE ok 51 - Line 233 "bar.tt" => "BlueBAR" ok 52 - Line 235: Found bar.tt in t/02_cache.t.test_dir ok 53 - Line 236: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 54 - Line 237: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 55 - Line 238: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 56 - Line 239: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 57 - Line 240: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 58 - Is in GLOBAL_CACHE ok 59 - Doesn't Have perl ok 60 - Line 256 "bar.tt" => "füBAR ¥" ok 61 - Line 258: Found bar.tt in t/02_cache.t.test_dir ok 62 - Line 259: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 63 - Line 260: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 64 - Line 261: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 65 - Line 264 "bar.tt" => "füBAR ¥" ### COMPILE_PERL => 1 ################################################ ok 66 - Line 272 "bar.tt" => "BlueBAR" ok 67 - Line 274: Found bar.tt in t/02_cache.t.test_dir ok 68 - Line 275: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 69 - Line 276: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 70 - Line 277: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 71 - Line 278: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 72 - Line 279: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 73 - Not in GLOBAL_CACHE ok 74 - Line 287 "bar.tt" => "BlueBAR" ok 75 - Line 289: Found bar.tt in t/02_cache.t.test_dir ok 76 - Line 290: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 77 - Line 291: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 78 - Line 292: Didn't find t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 79 - Line 293: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 80 - Line 294: Didn't find t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 81 - Is in GLOBAL_CACHE ok 82 - Line 302 "bar.tt" => "BlueBAR" ok 83 - Line 304: Found bar.tt in t/02_cache.t.test_dir ok 84 - Line 305: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 85 - Line 306: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 86 - Line 307: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 87 - Line 308: Found bar.tt.ttc.pl in t/02_cache.t.test_dir ok 88 - Line 309: Didn't find t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 89 - Line 316 "bar.tt" => "BlueBAR" ok 90 - Line 318: Found bar.tt in t/02_cache.t.test_dir ok 91 - Line 319: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 92 - Line 320: Didn't find bar.tt.sto in t/02_cache.t.test_dir ok 93 - Line 321: Found t/02_cache.t.test_dir/bar.tt.sto in t/02_cache.t.test_dir2 ok 94 - Line 322: Didn't find bar.tt.pl in t/02_cache.t.test_dir ok 95 - Line 323: Found t/02_cache.t.test_dir/bar.tt.pl in t/02_cache.t.test_dir2 ok 96 - Line 330 "bar.tt" => "BlueBAR" ok 97 - Line 332: Found bar.tt in t/02_cache.t.test_dir ok 98 - Line 333: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 99 - Line 334: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 100 - Line 335: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 101 - Line 336: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 102 - Line 337: Found t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 103 - Is in GLOBAL_CACHE ok 104 - Line 345 "bar.tt" => "BlueBAR" ok 105 - Line 347: Found bar.tt in t/02_cache.t.test_dir ok 106 - Line 348: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 107 - Line 349: Didn't find bar.tt.ttc.sto in t/02_cache.t.test_dir ok 108 - Line 350: Found t/02_cache.t.test_dir/bar.tt.ttc.sto in t/02_cache.t.test_dir2 ok 109 - Line 351: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 110 - Line 352: Found t/02_cache.t.test_dir/bar.tt.ttc.pl in t/02_cache.t.test_dir2 ok 111 - Is in GLOBAL_CACHE ok 112 - Has perl ok 113 - Line 368 "bar.tt" => "füBAR ¥" ok 114 - Line 370: Found bar.tt in t/02_cache.t.test_dir ok 115 - Line 371: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 116 - Line 372: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 117 - Line 373: Found bar.tt.ttc.pl in t/02_cache.t.test_dir ok 118 - Line 376 "bar.tt" => "füBAR ¥" ### COMPILE_PERL => 2 ################################################ ok 119 - Line 384 "bar.tt" => "BlueBAR" ok 120 - Line 386: Found bar.tt in t/02_cache.t.test_dir ok 121 - Line 387: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 122 - Line 388: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 123 - Line 389: Didn't find bar.tt.ttc.pl in t/02_cache.t.test_dir ok 124 - Is in GLOBAL_CACHE ok 125 - Doesn't Have perl ok 126 - Line 394 "bar.tt" => "BlueBAR" ok 127 - Line 396: Found bar.tt in t/02_cache.t.test_dir ok 128 - Line 397: Didn't find bar.tt in t/02_cache.t.test_dir2 ok 129 - Line 398: Found bar.tt.ttc.sto in t/02_cache.t.test_dir ok 130 - Line 399: Found bar.tt.ttc.pl in t/02_cache.t.test_dir ok 131 - Is in GLOBAL_CACHE ok 132 - Has perl ### STRING_REF ####################################################### ok 133 - Line 412 "[% blue %]BAR" => "BlueBAR" ok 134 - Line 414: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 135 - Line 415: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 136 - Line 416: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 137 - Line 417: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 138 - Not in GLOBAL_CACHE ok 139 - Line 425 "[% blue %]BAR" => "BlueBAR" ok 140 - Line 427: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 141 - Line 428: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 142 - Line 429: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 143 - Line 430: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 144 - Is in GLOBAL_CACHE ok 145 - Doesn't Have perl ok 146 - Line 439 "[% blue %]BAR" => "BlueBAR" ok 147 - Line 441: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 148 - Line 442: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 149 - Line 443: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 150 - Line 444: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 151 - Not in GLOBAL_CACHE ok 152 - Line 452 "[% blue %]BAR" => "BlueBAR" ok 153 - Line 454: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 154 - Line 455: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 155 - Line 456: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 156 - Line 457: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 157 - Not in GLOBAL_CACHE ok 158 - Line 465 "[% blue %]BAR" => "BlueBAR" ok 159 - Line 467: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 160 - Line 468: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 161 - Line 469: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 162 - Line 470: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 163 - Not in GLOBAL_CACHE ok 164 - Line 478 "[% blue %]BAR" => "BlueBAR" ok 165 - Line 480: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 166 - Line 481: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 167 - Line 482: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 168 - Line 483: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 169 - Is in GLOBAL_CACHE ok 170 - Has perl ok 171 - Line 492 "[% blue %]BAR" => "BlueBAR" ok 172 - Line 494: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 173 - Line 495: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 174 - Line 496: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 175 - Line 497: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 176 - Is in GLOBAL_CACHE ok 177 - Doesn't Have perl ok 178 - Line 502 "[% blue %]BAR" => "BlueBAR" ok 179 - Line 504: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 180 - Line 505: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 181 - Line 506: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir ok 182 - Line 507: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir ok 183 - Is in GLOBAL_CACHE ok 184 - Now has perl ok 185 - Line 516 "[% blue %]BAR" => "BlueBAR" ok 186 - Line 518: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 187 - Line 519: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 188 - Line 520: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir2 ok 189 - Line 521: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir2 ok 190 - Line 528 "[% blue %]BAR" => "BlueBAR" ok 191 - Line 530: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 192 - Line 531: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 193 - Line 532: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.sto in t/02_cache.t.test_dir ok 194 - Line 533: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.pl in t/02_cache.t.test_dir ok 195 - Line 540 "[% blue %]BAR" => "BlueBAR" ok 196 - Line 542: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 197 - Line 543: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 198 - Line 544: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.sto in t/02_cache.t.test_dir2 ok 199 - Line 545: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.pl in t/02_cache.t.test_dir2 ok 200 - Line 552 "[% blue %]BAR" => "BlueBAR" ok 201 - Line 554: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir ok 202 - Line 555: Didn't find Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758 in t/02_cache.t.test_dir2 ok 203 - Line 556: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.sto in t/02_cache.t.test_dir ok 204 - Line 557: Found Alloy_str_ref_cache/6f6/6f69285f87853cd193d2cc1231e20758.ttc.pl in t/02_cache.t.test_dir ### DONE ############################################################# ok t/05_tt_base..........1..2825 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### GET ############################################# engine_option (normal) Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/TT.pm line 53. ok 3 - Line 124 "[% foo %]" => "" ok 4 - Line 125 "[% foo %]" => "7" ok 5 - Line 126 "[% foo %]" => "7" ok 6 - Line 127 "[% foo %]" => "7" ok 7 - Line 128 "[% foo %]" => "Stash" ok 8 - Line 129 "[% foo %]" => "V" ok 9 - Line 130 "[% bar %]" => "" ok 10 - Line 131 "[% foo %]" => "Stash" ok 11 - Line 132 "[% bar %]" => "" ok 12 - Line 133 "[% foo %]" => "Stash" ok 13 - Line 134 "[% foo %]" => "Stash" ok 14 - Line 135 "[% foo %][% foo %][% foo %]" => "777" ok 15 - Line 136 "[% foo() %]" => "7" ok 16 - Line 137 "[% foo.bar %]" => "" ok 17 - Line 138 "[% foo.bar %]" => "" ok 18 - Line 139 "[% foo.bar %]" => "7" ok 19 - Line 140 "[% foo().bar %]" => "7" ok 20 - Line 141 "[% foo.0 %]" => "7" ok 21 - Line 142 "[% foo.10 %]" => "" ok 22 - Line 143 "[% foo %]" => "7" ok 23 - Line 144 "[% foo(7) %]" => "7" ok 24 - Line 145 "[% foo.length %]" => "1" ok 25 - Line 146 "[% foo.0 %]" => "7" ok 26 - Line 147 "[% foo(bar) %]" => "7" ok 27 - Line 148 "[% foo(bar.baz) %]" => "7" ok 28 - Line 149 "[% foo.seven %]" => "7" ok 29 - Line 150 "[% foo.seven() %]" => "7" ok 30 - Line 151 "[% foo.seven.length %]" => "1" ok 31 - Line 152 "[% foo.echo(7) %]" => "7" ok 32 - Line 153 "[% foo.many.0 %]" => "1" ok 33 - Line 154 "[% foo.many.10 %]" => "" ok 34 - Line 155 "[% foo.nomethod %]" => "" ok 35 - Line 156 "[% foo.nomethod.0 %]" => "" ok 36 - Line 158 "[% GET foo %]" => "" ok 37 - Line 159 "[% GET foo %]" => "7" ok 38 - Line 160 "[% GET foo.bar %]" => "" ok 39 - Line 161 "[% GET foo.bar %]" => "" ok 40 - Line 162 "[% GET foo.bar %]" => "7" ok 41 - Line 163 "[% GET foo.0 %]" => "7" ok 42 - Line 164 "[% GET foo %]" => "7" ok 43 - Line 165 "[% GET foo(7) %]" => "7" ok 44 - Line 167 "[% $name %]" => "" ok 45 - Line 168 "[% $name %]" => "7" ok 46 - Line 169 "[% $name.bar %]" => "" ok 47 - Line 170 "[% $name.bar %]" => "" ok 48 - Line 171 "[% $name.bar %]" => "7" ok 49 - Line 172 "[% $name().bar %]" => "7" ok 50 - Line 173 "[% $name.0 %]" => "7" ok 51 - Line 174 "[% $name %]" => "7" ok 52 - Line 175 "[% $name(7) %]" => "7" ok 53 - Line 177 "[% GET $name %]" => "" ok 54 - Line 178 "[% GET $name %]" => "7" ok 55 - Line 179 "[% GET $name.bar %]" => "" ok 56 - Line 180 "[% GET $name.bar %]" => "" ok 57 - Line 181 "[% GET $name.bar %]" => "7" ok 58 - Line 182 "[% GET $name.0 %]" => "7" ok 59 - Line 183 "[% GET $name %]" => "7" ok 60 - Line 184 "[% GET $name(7) %]" => "7" ok 61 - Line 186 "[% $name %]" => "" ok 62 - Line 187 "[% GET $name %]" => "" ok 63 - Line 189 "[% ${name} %]" => "" ok 64 - Line 190 "[% ${name} %]" => "7" ok 65 - Line 191 "[% ${name}.bar %]" => "" ok 66 - Line 192 "[% ${name}.bar %]" => "" ok 67 - Line 193 "[% ${name}.bar %]" => "7" ok 68 - Line 194 "[% ${name}().bar %]" => "7" ok 69 - Line 195 "[% ${name}.0 %]" => "7" ok 70 - Line 196 "[% ${name} %]" => "7" ok 71 - Line 197 "[% ${name}(7) %]" => "7" ok 72 - Line 199 "[% GET ${name} %]" => "" ok 73 - Line 200 "[% GET ${name} %]" => "7" ok 74 - Line 201 "[% GET ${name}.bar %]" => "" ok 75 - Line 202 "[% GET ${name}.bar %]" => "" ok 76 - Line 203 "[% GET ${name}.bar %]" => "7" ok 77 - Line 204 "[% GET ${name}.0 %]" => "7" ok 78 - Line 205 "[% GET ${name} %]" => "7" ok 79 - Line 206 "[% GET ${name}(7) %]" => "7" ok 80 - Line 208 "[% ${name} %]" => "" ok 81 - Line 209 "[% GET ${name} %]" => "" ok 82 - Line 210 "[% GET ${'foo'} %]" => "bar" ok 83 - Line 212 "[% foo.$name %]" => "" ok 84 - Line 213 "[% foo.$name %]" => "7" ok 85 - Line 214 "[% foo.$name.baz %]" => "" ok 86 - Line 216 "[% "hi" %]" => "hi" ok 87 - Line 217 "[% "hi %]" => "" ok 88 - Line 218 "[% 'hi' %]" => "hi" ok 89 - Line 219 "[% 'hi %]" => "" ok 90 - Line 220 "[% "$foo" %]" => "7" ok 91 - Line 221 "[% "hi $foo" %]" => "hi 7" ok 92 - Line 222 "[% "hi ${foo}" %]" => "hi 7" ok 93 - Line 223 "[% 'hi $foo' %]" => "hi $foo" ok 94 - Line 224 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 95 - Line 225 "[% 7 %]" => "7" ok 96 - Line 226 "[% -7 %]" => "-7" ok 97 - Line 228 "[% "hi ${foo.seven}" %]" => "hi 7" ok 98 - Line 229 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 99 - Line 231 "[% _foo %]2" => "2" ok 100 - Line 232 "[% $bar %]2" => "2" ok 101 - Line 233 "[% __foo %]2" => "2" ok 102 - Line 235 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 103 - Line 236 "[% [0..10].-1 %]" => "10" ok 104 - Line 237 "[% [0..10].${ 2.3 } %]" => "2" ok 105 - Line 239 "[% (1 + 2)() %]" => "" ok 106 - Line 240 "[% (1 + 2) %]" => "3" ok 107 - Line 241 "[% (a) %]" => "2" ok 108 - Line 242 "[% ('foo') %]" => "foo" ok 109 - Line 243 "[% (a(2)) %]" => "2" ### SET ############################################# engine_option (normal) ok 110 - Line 248 "[% SET foo bar %][% foo %]" => "" ok 111 - Line 249 "[% SET foo = 1 %][% foo %]" => "1" ok 112 - Line 250 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 113 - Line 251 "[% SET foo bar = 1 %][% foo %]" => "" ok 114 - Line 252 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 115 - Line 253 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 116 - Line 255 "[% SET foo = [] %][% foo.0 %]" => "" ok 117 - Line 256 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 118 - Line 257 "[% SET foo = {} %][% foo.0 %]" => "" ok 119 - Line 258 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 120 - Line 259 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 121 - Line 261 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 122 - Line 262 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 123 - Line 263 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 124 - Line 264 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 125 - Line 265 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 126 - Line 266 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 127 - Line 267 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 128 - Line 268 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 129 - Line 270 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 130 - Line 271 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 131 - Line 273 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 132 - Line 274 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 133 - Line 276 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 134 - Line 278 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 135 - Line 279 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 136 - Line 280 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 137 - Line 281 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 138 - Line 283 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 139 - Line 284 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 140 - Line 285 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 141 - Line 286 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 142 - Line 287 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 143 - Line 288 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 144 - Line 289 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 145 - Line 290 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 146 - Line 291 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 147 - Line 292 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 148 - Line 294 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 149 - Line 295 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 150 - Line 296 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 151 - Line 297 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 152 - Line 298 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 153 - Line 299 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 154 - Line 300 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 155 - Line 301 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 156 - Line 302 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 157 - Line 304 "[% foo = 1 %][% foo %]" => "1" ok 158 - Line 305 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 159 - Line 306 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 160 - Line 308 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 161 - Line 309 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 162 - Line 311 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 163 - Line 313 "[% _foo = 1 %][% _foo %]2" => "2" ok 164 - Line 314 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################# engine_option (normal) ok 165 - Line 319 "[% foo; %]" => "1" ok 166 - Line 320 "[% GET foo; %]" => "1" ok 167 - Line 321 "[% GET foo; GET foo %]" => "11" ok 168 - Line 322 "[% GET foo GET foo %]" => "11" ok 169 - Line 323 "[% GET foo GET foo %]" => "" ok 170 - Line 325 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 171 - Line 326 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 172 - Line 327 "[% a = 1 a = a + 2 a %]" => "3" ok 173 - Line 329 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 174 - Line 330 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 175 - Line 331 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################## engine_option (normal) ok 176 - Line 337 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 177 - Line 338 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 178 - Line 339 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 179 - Line 342 "[% foo %]" => "hi" ok 180 - Line 343 "[% GET foo %]" => "hi" ok 181 - Line 344 "[% CALL foo %]" => "" ok 182 - CALL method actually called var ### scalar vmethods ################################# engine_option (normal) ok 183 - Line 351 "[% n.0 %]" => "7" ok 184 - Line 352 "[% n.abs %]" => "7" ok 185 - Line 353 "[% n.abs %]" => "7" ok 186 - Line 354 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 187 - Line 355 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 188 - Line 356 "[% n.chunk(3).join %]" => "abc def g" ok 189 - Line 357 "[% n.chunk(-3).join %]" => "a bcd efg" ok 190 - Line 358 "[% n|collapse %]" => "a b" ok 191 - Line 359 "[% n.cos.substr(0,5) %]" => "1" ok 192 - Line 360 "[% n.cos.substr(0,5) %]" => "0.707" ok 193 - Line 361 "[% n.defined %]" => "1" ok 194 - Line 362 "[% n.defined %]" => "" ok 195 - Line 363 "[% n.defined %]" => "1" ok 196 - Line 364 "[% n.exp.substr(0,5) %]" => "2.718" ok 197 - Line 365 "[% n.exp.log.substr(0,5) %]" => "8" ok 198 - Line 366 "[% n.fmt %]" => "7" ok 199 - Line 367 "[% n.fmt('%02d') %]" => "07" ok 200 - Line 368 "[% n.fmt('%0*d', 3) %]" => "007" ok 201 - Line 369 "[% n.fmt('(%s)') %]" => "(a # b)" ok 202 - Line 370 "[% n|format('%02d') %]" => "07" ok 203 - Line 371 "[% n|format('%0*d', 3) %]" => "007" ok 204 - Line 372 "[% n|format('(%s)') %]" => "(a) # (b)" ok 205 - Line 373 "[% n.hash.items.1 %]" => "b" ok 206 - Line 374 "[% n.hex %]" => "255" ok 207 - Line 375 "[% n|html %]" => "&" ok 208 - Line 376 "[% n|indent %]" => " a # b" ok 209 - Line 377 "[% n|indent(2) %]" => " a # b" ok 210 - Line 378 "[% n|indent('wow ') %]" => "wow a # wow b" ok 211 - Line 379 "[% n.int %]" => "123" ok 212 - Line 380 "[% n.int %]" => "123" ok 213 - Line 381 "[% n.int %]" => "0" ok 214 - Line 382 "[% n.item %]" => "7" ok 215 - Line 383 "[% n.lc %]" => "abc" ok 216 - Line 384 "[% n|lcfirst %]" => "fOO" ok 217 - Line 385 "[% n.length %]" => "3" ok 218 - Line 386 "[% n.list.0 %]" => "abc" ok 219 - Line 387 "[% n.log.substr(0,5) %]" => "4.605" ok 220 - Line 388 "[% n|lower %]" => "abc" ok 221 - Line 389 "[% n.match('foo').join %]" => "" ok 222 - Line 390 "[% n.match('foo').join %]" => "1" ok 223 - Line 391 "[% n.match('foo',1).join %]" => "foo" ok 224 - Line 392 "[% n.match('(foo)').join %]" => "foo" ok 225 - Line 393 "[% n.match('(foo)').join %]" => "foo" ok 226 - Line 394 "[% n.match('(foo)',1).join %]" => "foo foo" ok 227 - Line 395 "[% n.null %]" => "" ok 228 - Line 396 "[% n.oct %]" => "255" ok 229 - Line 397 "[% n.rand %]" => "1.96942138671875" ok 230 - Line 398 "[% n.rand %]" => "0.377899169921875" ok 231 - Line 399 "[% n.remove('bc') %]" => "a" ok 232 - Line 400 "[% n.remove('bc') %]" => "aa" ok 233 - Line 401 "[% n.repeat %]" => "1" ok 234 - Line 402 "[% n.repeat(0) %]" => "" ok 235 - Line 403 "[% n.repeat(1) %]" => "1" ok 236 - Line 404 "[% n.repeat(2) %]" => "11" ok 237 - Line 405 "[% n.repeat(2,'|') %]" => "1|1" ok 238 - Line 406 "[% n.replace('foo', 'bar') %]" => "barbar" ok 239 - Line 407 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 240 - Line 408 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 241 - Line 409 "[% n.search('foo') %]" => "" ok 242 - Line 410 "[% n.search('foo') %]" => "1" ok 243 - Line 411 "[% n.sin.substr(0,5) %]" => "0" ok 244 - Line 412 "[% n.sin.substr(0,5) %]" => "1" ok 245 - Line 413 "[% n.size %]" => "1" ok 246 - Line 414 "[% n.split.join('|') %]" => "abc" ok 247 - Line 415 "[% n.split.join('|') %]" => "a|b|c" ok 248 - Line 416 "[% n.split.join('|') %]" => "a|b|c" ok 249 - Line 417 "[% n.split(u,2).join('|') %]" => "a|b c" ok 250 - Line 419 "[% n.split('/').join('|') %]" => "a|b|c" ok 251 - Line 420 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 252 - Line 421 "[% n.sprintf(7) %]" => "7" ok 253 - Line 422 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 254 - Line 423 "[% n.sqrt %]" => "3" ok 255 - Line 424 "[% n.srand; 12 %]" => "12" # testing stderr ... ok ok 256 - Line 425 "[% n.stderr %]" => "" ok 257 - Line 426 "[% n|trim %]" => "a b" ok 258 - Line 427 "[% n.uc %]" => "FOO" ok 259 - Line 428 "[% n|ucfirst %]" => "Foo" ok 260 - Line 429 "[% n|upper %]" => "FOO" ok 261 - Line 430 "[% n|uri %]" => "a%20b" ### list vmethods ################################### engine_option (normal) ok 262 - Line 435 "[% a.defined %]" => "1" ok 263 - Line 436 "[% a.defined(1) %]" => "1" ok 264 - Line 437 "[% a.defined(3) %]" => "" ok 265 - Line 438 "[% a.first %]" => "2" ok 266 - Line 439 "[% a.first(3).join %]" => "2 3 4" ok 267 - Line 440 "[% a.fmt %]" => "2 3" ok 268 - Line 441 "[% a.fmt('%02d') %]" => "02 03" ok 269 - Line 442 "[% a.fmt('%02d',' ') %]" => "02 03" ok 270 - Line 443 "[% a.fmt('%02d','|') %]" => "02|03" ok 271 - Line 444 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 272 - Line 445 "[% a.grep.join %]" => "2 3" ok 273 - Line 446 "[% a.grep(2).join %]" => "2" ok 274 - Line 447 "[% a.hash.items.join %]" => "2 3" ok 275 - Line 448 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 276 - Line 449 "[% a.import(5) %]|[% a.join %]" => "|2 3" ok 277 - Line 451 "[% a.import([5]) %]|[% a.join %]" => "|2 3 5" ok 278 - Line 453 "[% a.item %]" => "2" ok 279 - Line 454 "[% a.item(1) %]" => "3" ok 280 - Line 455 "[% a.join %]" => "2 3" ok 281 - Line 456 "[% a.join('|') %]" => "2|3" ok 282 - Line 457 "[% a.last %]" => "10" ok 283 - Line 458 "[% a.last(3).join %]" => "8 9 10" ok 284 - Line 459 "[% a.list.join %]" => "2 3" ok 285 - Line 460 "[% a.max %]" => "1" ok 286 - Line 461 "[% a.merge(5).join %]" => "2 3" ok 287 - Line 462 "[% a.merge([5]).join %]" => "2 3 5" ok 288 - Line 463 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 289 - Line 464 "[% a.nsort.join %]" => "1 2 3" ok 290 - Line 465 "[% a.nsort('b').0.b %]" => "7" ok 291 - Line 466 "[% a.pop %][% a.join %]" => "32" ok 292 - Line 467 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 293 - Line 468 "[% a.pick %]" => "2" ok 294 - Line 469 "[% a.pick(5).join('') %]" => "23322" ok 295 - Line 470 "[% a.reverse.join %]" => "3 2" ok 296 - Line 471 "[% a.shift %][% a.join %]" => "23" ok 297 - Line 472 "[% a.size %]" => "2" ok 298 - Line 473 "[% a.slice.join %]" => "2 3 4 5" ok 299 - Line 474 "[% a.slice(2).join %]" => "4 5" ok 300 - Line 475 "[% a.slice(0,2).join %]" => "2 3 4" ok 301 - Line 476 "[% a.sort.join %]" => "1 2 3" ok 302 - Line 477 "[% a.sort('b').0.b %]" => "wee" ok 303 - Line 478 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 304 - Line 479 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 305 - Line 480 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 306 - Line 481 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 307 - Line 482 "[% a.unique.join %]" => "2 3" ok 308 - Line 483 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods ################################### engine_option (normal) ok 309 - Line 488 "[% h.defined %]" => "1" ok 310 - Line 489 "[% h.defined('a') %]" => "1" ok 311 - Line 490 "[% h.defined('b') %]" => "" ok 312 - Line 491 "[% h.defined('a') %]" => "" ok 313 - Line 492 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 314 - Line 493 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 315 - Line 494 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 316 - Line 495 "[% h.each.sort.join %]" => "1 2 a b" ok 317 - Line 496 "[% h.exists('a') %]" => "1" ok 318 - Line 497 "[% h.exists('b') %]" => "" ok 319 - Line 498 "[% h.exists('a') %]" => "1" ok 320 - Line 499 "[% h.fmt %]" => "b B # c C" ok 321 - Line 500 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 322 - Line 501 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 323 - Line 502 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 324 - Line 503 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 325 - Line 504 "[% h.hash.fmt %]" => "b B # c C" ok 326 - Line 505 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 327 - Line 506 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 328 - Line 507 "[% h.item('a') %]" => "A" ok 329 - Line 508 "[% h.item('_a') %]" => "" ok 330 - Line 509 "[% h.items.sort.join %]" => "1 2 a b" ok 331 - Line 510 "[% h.keys.sort.join %]" => "a b" ok 332 - Line 511 "[% h.list('each').sort.join %]" => "1 2 a b" ok 333 - Line 512 "[% h.list('keys').sort.join %]" => "a b" ok 334 - Line 513 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 335 - Line 514 "[% h.list('values').sort.join %]" => "1 2" ok 336 - Line 515 "[% h.null %]" => "" ok 337 - Line 516 "[% h.nsort.join %]" => "b a" ok 338 - Line 517 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 339 - Line 518 "[% h.size %]" => "2" ok 340 - Line 519 "[% h.sort.join %]" => "b a" ok 341 - Line 520 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ########################### engine_option (normal) ok 342 - Line 525 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 343 - Line 526 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 344 - Line 527 "[% sprintf('%d %d', 7, 8) %] d" => " d" ok 345 - Line 528 "[% int(2.234) %]" => "2" ok 346 - Line 530 "[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => "2442" ### more virtual methods / filters ################## engine_option (normal) ok 347 - Line 535 "[% [0 .. 10].reverse.1 %]" => "9" ok 348 - Line 536 "[% {a => 'A'}.a %]" => "A" ok 349 - Line 537 "[% 'This is a string'.length %]" => "16" ok 350 - Line 538 "[% 123.length %]" => "3" ok 351 - Line 539 "[% 123.2.length %]" => "5" ok 352 - Line 540 "[% -123.2.length %]" => "-5" ok 353 - Line 541 "[% (-123.2).length %]" => "6" ok 354 - Line 542 "[% a = 23; a.0 %]" => "23" ok 355 - Line 543 "[% 1.rand %]" => "0.110137939453125" ok 356 - Line 545 "[% n.size %]" => "SIZE" ok 357 - Line 546 "[% n|size %]" => "2" ok 358 - Line 548 "[% foo | eval %]" => "baz" ok 359 - Line 549 "[% "1" | indent(2) %]" => " 1" ok 360 - Line 552 "[% n FILTER size %]" => "1" ok 361 - Line 554 "[% n FILTER repeat %]" => "1" ok 362 - Line 555 "[% n FILTER repeat(0) %]" => "" ok 363 - Line 556 "[% n FILTER repeat(1) %]" => "1" ok 364 - Line 557 "[% n FILTER repeat(2) %]" => "11" ok 365 - Line 558 "[% n FILTER repeat(2,'|') %]" => "1|1" ok 366 - Line 560 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 367 - Line 561 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 368 - Line 562 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 369 - Line 563 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 370 - Line 564 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 371 - Line 565 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 372 - Line 567 "[% "hi" FILTER $foo %]" => "hihi" ok 373 - Line 568 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 374 - Line 569 "[% "hi" FILTER foo %]" => "hihi" ok 375 - Line 570 "[% "hi" FILTER foo %]" => "hihi" ok 376 - Line 571 "[% "hi" FILTER foo(2) %]" => "hihi" ok 377 - Line 573 "[% ["a".."z"].pick %]" => "e" ok 378 - Line 575 "[% ' ' | uri %]" => "%20" ok 379 - Line 577 "[% "one".fmt %]" => "one" ok 380 - Line 578 "[% 2.fmt("%02d") %]" => "02" ok 381 - Line 580 "[% [1..3].fmt %]" => "1 2 3" ok 382 - Line 581 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 383 - Line 582 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 384 - Line 584 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 385 - Line 585 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 386 - Line 586 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 387 - Line 588 "[% 1|format("%s") %]" => "1" ok 388 - Line 589 "[% 1|format("%*s", 6) %]" => " 1" ok 389 - Line 590 "[% 1|format("%-*s", 6) %]" => "1 " ok 390 - Line 592 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 391 - Line 593 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 392 - Line 594 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ### virtual objects ################################# engine_option (normal) ok 393 - Line 599 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 394 - Line 600 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 395 - Line 601 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 396 - Line 603 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 397 - Line 604 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 398 - Line 605 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 399 - Line 606 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 400 - Line 607 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ok 401 - Line 609 "[% {a => 1, b => 2} | Hash.keys | List.sort | List.join(", ") %]" => "a, b" ### chomping ######################################## engine_option (normal) ok 402 - Line 614 " [% foo %]" => " " ok 403 - Line 615 " [%- foo %]" => "" ok 404 - Line 616 " # [%- foo %]" => "" ok 405 - Line 617 " # [%- foo %]" => "" ok 406 - Line 618 " # [%- foo %]" => " # " ok 407 - Line 619 " # [%- foo %]" => " # " ok 408 - Line 620 " # [%- foo %]" => " " ok 409 - Line 621 " # # [%- foo %]" => " # " ok 410 - Line 623 "[% 7 %] " => "7 " ok 411 - Line 624 "[% 7 -%] " => "7 " ok 412 - Line 625 "[% 7 -%] # " => "7" ok 413 - Line 626 "[% 7 -%] # " => "7" ok 414 - Line 627 "[% 7 -%] # " => "7 " ok 415 - Line 628 "[% 7 -%] # # " => "7 # " ok 416 - Line 629 "[% 7 -%] # " => "7 " ### string operators ################################ engine_option (normal) ok 417 - Line 634 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 418 - Line 635 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 419 - Line 636 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 420 - Line 637 "[% "b" gt "c" %]<<<" => "<<<" ok 421 - Line 638 "[% "b" gt "a" %]<<<" => "1<<<" ok 422 - Line 639 "[% "b" ge "c" %]<<<" => "<<<" ok 423 - Line 640 "[% "b" ge "b" %]<<<" => "1<<<" ok 424 - Line 641 "[% "b" lt "c" %]<<<" => "1<<<" ok 425 - Line 642 "[% "b" lt "a" %]<<<" => "<<<" ok 426 - Line 643 "[% "b" le "a" %]<<<" => "<<<" ok 427 - Line 644 "[% "b" le "b" %]<<<" => "1<<<" ok 428 - Line 645 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 429 - Line 646 "[% "b" cmp "b" %]<<<" => "0<<<" ok 430 - Line 647 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################## engine_option (normal) ok 431 - Line 652 "[% 1 + 2 %]" => "3" ok 432 - Line 653 "[% 1 + 2 + 3 %]" => "6" ok 433 - Line 654 "[% (1 + 2) %]" => "3" ok 434 - Line 655 "[% 2 - 1 %]" => "1" ok 435 - Line 656 "[% -1 + 2 %]" => "1" ok 436 - Line 657 "[% -1+2 %]" => "1" ok 437 - Line 658 "[% 2 - 1 %]" => "1" ok 438 - Line 659 "[% 2-1 %]" => "1" ok 439 - Line 660 "[% 2 - -1 %]" => "3" ok 440 - Line 661 "[% 4 * 2 %]" => "8" ok 441 - Line 662 "[% 4 / 2 %]" => "2" ok 442 - Line 663 "[% 10 / 3 %]" => "3.33333333333333" ok 443 - Line 664 "[% 10 div 3 %]" => "3" ok 444 - Line 665 "[% 2 ** 3 %]" => "8" ok 445 - Line 666 "[% 1 + 2 * 3 %]" => "7" ok 446 - Line 667 "[% 3 * 2 + 1 %]" => "7" ok 447 - Line 668 "[% (1 + 2) * 3 %]" => "9" ok 448 - Line 669 "[% 3 * (1 + 2) %]" => "9" ok 449 - Line 670 "[% 1 + 2 ** 3 %]" => "9" ok 450 - Line 671 "[% 2 * 2 ** 3 %]" => "16" ok 451 - Line 672 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 452 - Line 673 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 453 - Line 675 "[% a = 1; (a += 2) %]" => "3" ok 454 - Line 676 "[% a = 1; (a -= 2) %]" => "-1" ok 455 - Line 677 "[% a = 4; (a /= 2) %]" => "2" ok 456 - Line 678 "[% a = 1; (a *= 2) %]" => "2" ok 457 - Line 679 "[% a = 3; (a **= 2) %]" => "9" ok 458 - Line 680 "[% a = 1; (a %= 2) %]" => "1" ok 459 - Line 681 "[% a = 1; (a += 2 + 3) %]" => "6" ok 460 - Line 682 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 461 - Line 683 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 462 - Line 685 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 463 - Line 686 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 464 - Line 688 "[% a = 2; a -= 3; a %]" => "-1" ok 465 - Line 689 "[% a = 2; a *= 3; a %]" => "6" ok 466 - Line 690 "[% a = 2; a /= .5; a %]" => "4" ok 467 - Line 691 "[% a = 8; a %= 3; a %]" => "2" ok 468 - Line 692 "[% a = 2; a **= 3; a %]" => "8" ok 469 - Line 694 "[% a = 1 %][% ++a %][% a %]" => "22" ok 470 - Line 695 "[% a = 1 %][% a++ %][% a %]" => "12" ok 471 - Line 696 "[% a = 1 %][% --a %][% a %]" => "00" ok 472 - Line 697 "[% a = 1 %][% a-- %][% a %]" => "10" ok 473 - Line 698 "[% a++ FOR [1..3] %]" => "012" ok 474 - Line 699 "[% --a FOR [1..3] %]" => "-1-2-3" ok 475 - Line 701 "[% 2 > 3 %]<<<" => "<<<" ok 476 - Line 702 "[% 2 > 1 %]<<<" => "1<<<" ok 477 - Line 703 "[% 2 >= 3 %]<<<" => "<<<" ok 478 - Line 704 "[% 2 >= 2 %]<<<" => "1<<<" ok 479 - Line 705 "[% 2 < 3 %]<<<" => "1<<<" ok 480 - Line 706 "[% 2 < 1 %]<<<" => "<<<" ok 481 - Line 707 "[% 2 <= 1 %]<<<" => "<<<" ok 482 - Line 708 "[% 2 <= 2 %]<<<" => "1<<<" ok 483 - Line 709 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 484 - Line 710 "[% 2 <=> 2 %]<<<" => "0<<<" ok 485 - Line 711 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ############################### engine_option (normal) ok 486 - Line 716 "[% 5 && 6 %]" => "6" ok 487 - Line 717 "[% 5 || 6 %]" => "5" ok 488 - Line 718 "[% 0 || 6 %]" => "6" ok 489 - Line 719 "[% 0 && 6 %]" => "0" ok 490 - Line 720 "[% 0 && 0 %]" => "0" ok 491 - Line 721 "[% 5 && 6 && 7%]" => "7" ok 492 - Line 722 "[% 0 || 1 || 2 %]" => "1" ok 493 - Line 724 "[% 5 + (0 || 5) %]" => "10" ok 494 - Line 727 "[% 1 ? 2 : 3 %]" => "2" ok 495 - Line 728 "[% 0 ? 2 : 3 %]" => "3" ok 496 - Line 729 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 497 - Line 730 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 498 - Line 732 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 499 - Line 733 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 500 - Line 734 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 501 - Line 736 "[% 0 ? 2 : 3 %]" => "3" ok 502 - Line 737 "[% 1 ? 2 : 3 %]" => "2" ok 503 - Line 738 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 504 - Line 739 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 505 - Line 740 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 506 - Line 741 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 507 - Line 742 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 508 - Line 744 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 509 - Line 746 "[% foo //= 2 ; foo %]" => "2" ok 510 - Line 747 "[% foo = 3; foo //= 2; foo %]" => "3" ok 511 - Line 748 "[% foo = 3; SET foo; foo //= 2; foo %]" => "2" ok 512 - Line 750 "[% 5 // 6 %]" => "5" ok 513 - Line 751 "[% foo // 6 %]" => "6" ok 514 - Line 752 "[% foo // 6 %]" => "6" ok 515 - Line 753 "[% foo // 6 %]" => "" ok 516 - Line 754 "[% foo // 6 %]" => "bar" ok 517 - Line 756 "[% foo err 6 %]" => "6" ok 518 - Line 757 "[% foo ERR 6 %]" => "6" ### regex ########################################### engine_option (normal) ok 519 - Line 762 "[% /foo/ %]" => "(?-xism:foo)" ok 520 - Line 763 "[% /foo %]" => "" ok 521 - Line 764 "[% /foo/x %]" => "(?-xism:(?x:foo))" ok 522 - Line 765 "[% /foo/xi %]" => "(?-xism:(?xi:foo))" ok 523 - Line 766 "[% /foo/xis %]" => "(?-xism:(?xis:foo))" ok 524 - Line 767 "[% /foo/xism %]" => "(?-xism:(?xism:foo))" ok 525 - Line 768 "[% /foo/e %]" => "" ok 526 - Line 769 "[% /foo/g %]" => "" ok 527 - Line 770 "[% /foo %]" => "" ok 528 - Line 771 "[% /foo**/ %]" => "" ok 529 - Line 772 "[% /fo\/o/ %]" => "(?-xism:fo/o)" ok 530 - Line 773 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE######################## engine_option (normal) ok 531 - Line 778 "[% PROCESS foo %]one" => "" ok 532 - Line 779 "[% BLOCK foo %]one" => "" ok 533 - Line 780 "[% BLOCK foo %][% END %]one" => "one" ok 534 - Line 781 "[% BLOCK %][% END %]one" => "one" ok 535 - Line 782 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 536 - Line 783 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 537 - Line 784 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 538 - Line 785 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 539 - Line 786 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 540 - Line 787 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 541 - Line 788 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 542 - Line 789 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 543 - Line 790 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 544 - Line 791 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 545 - Line 792 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 546 - Line 793 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 547 - Line 794 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 548 - Line 796 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% PROCESS $self.a self = 'blah' %]" => "Ta-Da" ok 549 - Line 797 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% INCLUDE $self.a self = 'blah' %]" => "Ta-Da" ok 550 - Line 799 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 551 - Line 800 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ok 552 - Line 802 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "" ok 553 - Line 804 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "FOOBARFOO" ### IF / UNLESS / ELSIF / ELSE ###################### engine_option (normal) ok 554 - Line 809 "[% IF 1 %]Yes[% END %]" => "Yes" ok 555 - Line 810 "[% IF 0 %]Yes[% END %]" => "" ok 556 - Line 811 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 557 - Line 812 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 558 - Line 813 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 559 - Line 814 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 560 - Line 816 "[% UNLESS 1 %]Yes[% END %]" => "" ok 561 - Line 817 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 562 - Line 818 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 563 - Line 819 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 564 - Line 820 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 565 - Line 821 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################## engine_option (normal) ok 566 - Line 826 "[%\# one %]" => "" ok 567 - Line 827 "[%\# # one %]" => "" ok 568 - Line 828 "[%-\# # one %]" => "" ok 569 - Line 829 "[% \# # one %]" => "ONE" ok 570 - Line 830 "[%\# BLOCK one %]" => "" ok 571 - Line 831 "[%\# BLOCK one %]two" => "two" ok 572 - Line 832 "[%\# BLOCK one %]two[% END %]" => "" ok 573 - Line 833 "[%\# BLOCK one %]two[% END %]three" => "" ok 574 - Line 834 "[% # \# # -%] # foo" => "foo" ### FOREACH / NEXT / LAST ########################### engine_option (normal) ok 575 - Line 842 "[% FOREACH foo %]" => "" ok 576 - Line 843 "[% FOREACH foo %][% END %]" => "" ok 577 - Line 844 "[% FOREACH foo %]bar[% END %]" => "" ok 578 - Line 845 "[% FOREACH foo %]bar[% END %]" => "bar" ok 579 - Line 846 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 580 - Line 847 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 581 - Line 848 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 582 - Line 849 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 583 - Line 850 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 584 - Line 851 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 585 - Line 852 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 586 - Line 853 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 587 - Line 854 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 588 - Line 855 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 589 - Line 856 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 590 - Line 857 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 591 - Line 858 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 592 - Line 859 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 593 - Line 861 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 594 - Line 866 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 595 - Line 867 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 596 - Line 868 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 597 - Line 869 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 598 - Line 870 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 599 - Line 871 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 600 - Line 872 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 601 - Line 873 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 602 - Line 874 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 603 - Line 875 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 604 - Line 876 "[% f.b = 1 %][% FOREACH f.b = [1..10] %][% f.b %][% END %][% f.b %]" => "1234567891010" ok 605 - Line 877 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 606 - Line 878 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 607 - Line 879 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 608 - Line 882 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 609 - Line 883 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 610 - Line 884 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 611 - Line 885 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ### LOOP ############################################ engine_option (normal) ok 612 - Line 890 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 613 - Line 900 "[% 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 ########################################### engine_option (normal) ok 614 - Line 912 "[% WHILE foo %]" => "" ok 615 - Line 913 "[% WHILE foo %][% END %]" => "" ok 616 - Line 914 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 617 - Line 915 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 618 - Line 916 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 619 - Line 918 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 620 - Line 919 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 621 - Line 920 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 622 - Line 921 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 623 - Line 923 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 624 - Line 924 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 625 - Line 925 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 626 - Line 926 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ########################### engine_option (normal) ok 627 - Line 931 "[% STOP %]" => "" ok 628 - Line 932 "One[% STOP %]Two" => "One" ok 629 - Line 933 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 630 - Line 934 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 631 - Line 935 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 632 - Line 937 "[% RETURN %]" => "" ok 633 - Line 938 "One[% RETURN %]Two" => "One" ok 634 - Line 939 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 635 - Line 940 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 636 - Line 941 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 637 - Line 943 "[% CLEAR %]" => "" ok 638 - Line 944 "One[% CLEAR %]Two" => "Two" ok 639 - Line 945 "[% BLOCK foo %]One[% CLEAR %]Two[% END %]First[% PROCESS foo %]Last" => "FirstTwoLast" ok 640 - Line 946 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% CLEAR %][% END %][% END %]" => "23" ok 641 - Line 947 "[% FOREACH f = [1..3] %][% IF loop.first %][% CLEAR %][% END %][% f %][% END %]" => "123" ok 642 - Line 948 "[% FOREACH f = [1..3] %][% f %][% IF loop.last %][% CLEAR %][% END %][% END %]" => "" ok 643 - Line 949 "[% FOREACH f = [1..3] %][% IF loop.last %][% CLEAR %][% END %][% f %][% END %]" => "3" ### post opererative directives ##################### engine_option (normal) ok 644 - Line 954 "[% GET foo IF 1 %]" => "1" ok 645 - Line 955 "[% f FOREACH f = [1..3] %]" => "123" ok 646 - Line 957 "2[% GET foo IF 1 IF 2 %]" => "21" ok 647 - Line 958 "2[% GET foo IF 1 IF 0 %]" => "2" ok 648 - Line 959 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 649 - Line 960 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 650 - Line 961 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 651 - Line 962 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 652 - Line 963 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 653 - Line 965 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 654 - Line 966 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 655 - Line 968 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ####################################### engine_option (normal) ok 656 - Line 973 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 657 - Line 974 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 658 - Line 975 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 659 - Line 976 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 660 - Line 977 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################ engine_option (normal) ok 661 - Line 982 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 662 - Line 983 "[% TAGS default %][% 1 + 2 %]" => "3" ok 663 - Line 984 "[% TAGS html %]" => "3" ok 664 - Line 985 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 665 - Line 986 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 666 - Line 987 "[% TAGS php %]" => "3" ok 667 - Line 988 "[% TAGS star %][* 1 + 2 *]" => "3" ok 668 - Line 989 "[% TAGS template %][% 1 + 2 %]" => "3" ok 669 - Line 990 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 670 - Line 991 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 671 - Line 992 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 672 - Line 994 "[% TAGS html %] " => "3" ok 673 - Line 995 "[% TAGS html %]" => "3" ok 674 - Line 996 "[% TAGS html %] # " => "3" ok 675 - Line 997 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 676 - Line 998 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 677 - Line 1000 "[% TAGS %]" => "3" ok 678 - Line 1002 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 679 - Line 1003 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 680 - Line 1004 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 681 - Line 1005 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 682 - Line 1006 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 683 - Line 1007 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 684 - Line 1009 "[% TAGS html -->" => "3" ok 685 - Line 1010 "[% TAGS html ; 7 -->" => "73" ok 686 - Line 1011 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE ################################### engine_option (normal) ok 687 - Line 1016 "[% SWITCH 1 %][% END %]hi" => "hi" ok 688 - Line 1017 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 689 - Line 1018 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 690 - Line 1019 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 691 - Line 1020 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 692 - Line 1021 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 693 - Line 1022 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 694 - Line 1023 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 695 - Line 1024 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 696 - Line 1026 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ##################### engine_option (normal) ok 697 - Line 1031 "[% TRY %][% END %]hi" => "hi" ok 698 - Line 1032 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 699 - Line 1033 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "" ok 700 - Line 1034 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %][% END %]hi" => "Foohi" ok 701 - Line 1035 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 702 - Line 1036 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 703 - Line 1037 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 704 - Line 1038 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "" ok 705 - Line 1039 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 706 - Line 1041 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 707 - Line 1042 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 708 - Line 1043 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 709 - Line 1044 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "" ok 710 - Line 1046 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 711 - Line 1047 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 712 - Line 1048 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 713 - Line 1049 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 714 - Line 1050 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ###################################### engine_option (normal) ok 715 - Line 1056 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 716 - Line 1058 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################# engine_option (normal) ok 717 - Line 1064 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 718 - Line 1065 "[% USE Foo %]one" => "one" ok 719 - Line 1066 "[% USE Foo2 %]one" => "one" ok 720 - Line 1067 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 721 - Line 1068 "[% USE Foo2(bar = 'baz') %]one[% Foo2.bar %]" => "onebarbaz" ok 722 - Line 1069 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 723 - Line 1070 "[% USE d = Foo(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 724 - Line 1071 "[% USE d.d = Foo(bar = 'baz') %]one[% d.d.bar %]" => "" ok 725 - Line 1073 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 726 - Line 1074 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 727 - Line 1077 "[% USE Foo %]one" => "one" ### MACRO ########################################### engine_option (normal) ok 728 - Line 1082 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 729 - Line 1083 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 730 - Line 1084 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 731 - Line 1085 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 732 - Line 1086 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 733 - Line 1087 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 734 - Line 1088 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ok 735 - Line 1090 "[% MACRO f BLOCK %]>[% TRY; f ; CATCH ; "caught" ; END %][% END %][% f %]" => ">>>caught" ### DEBUG ########################################### engine_option (normal) ok 736 - Line 1095 " # [% one %]" => " # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 737 - Line 1096 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 738 - Line 1097 "[% one %] # " => "(1)ONE # " ok 739 - Line 1098 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 740 - Line 1099 "[% one; # one %]" => "(1)ONE(2)ONE" ok 741 - Line 1101 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 742 - Line 1103 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 743 - Line 1104 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - def is undefined # " ### constants ####################################### engine_option (normal) ok 744 - Line 1123 "[% constants.harry %]" => "do_this_once" ok 745 - Line 1124 "[% constants.harry.length %]" => "12" ok 746 - Line 1125 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 747 - Line 1126 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 748 - Line 1127 "[% constants.foo.${constants.bang} %]" => "57" ok 749 - Line 1128 "[% constants.foo.$bam.${constants.bing} %]" => "42" ok 750 - Line 1129 "[% bam = 'somethingelse' %][% constants.foo.$bam.${constants.bing} %]" => "42" ok 751 - Line 1131 "[% constants.${"harry"} %]" => "do_this_once" ok 752 - Line 1132 "[% ${"constants"}.harry %]" => "foo" ok 753 - Line 1134 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### INTERPOLATE ##################################### engine_option (normal) ok 754 - Line 1139 "Foo $one Bar" => "Foo ONE Bar" ok 755 - Line 1140 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 756 - Line 1141 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 757 - Line 1145 "Foo \ Bar" => "Foo \ Bar" ok 758 - Line 1146 "Foo \\ Bar" => "Foo \\ Bar" ok 759 - Line 1147 "Foo \n Bar" => "Foo \n Bar" ok 760 - Line 1148 "Foo \$a Bar" => "Foo $a Bar" ok 761 - Line 1149 "Foo \\$a Bar" => "Foo \\7 Bar" ok 762 - Line 1150 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 763 - Line 1151 "Foo $a.B Bar" => "Foo 7 Bar" ok 764 - Line 1152 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 765 - Line 1153 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 766 - Line 1155 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 767 - Line 1156 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 768 - Line 1157 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 769 - Line 1158 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 770 - Line 1159 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 771 - Line 1160 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 772 - Line 1161 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### ANYCASE / TRIM ################################## engine_option (normal) ok 773 - Line 1166 "[% GET %]" => "" ok 774 - Line 1167 "[% GET GET %]" => "ONE" ok 775 - Line 1168 "[% get one %]" => "ONE" ok 776 - Line 1169 "[% get %]" => "" ok 777 - Line 1170 "[% get get %]" => "ONE" ok 778 - Line 1172 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 779 - Line 1173 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => "hi" ok 780 - Line 1174 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi" ok 781 - Line 1175 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi" ok 782 - Line 1176 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => "hi" ok 783 - Line 1177 "A[% TRY %] # hi # [% END %]" => "A # hi" ok 784 - Line 1179 "[% FOO %]" => "foo" ### V1DOLLAR ######################################## engine_option (normal) ok 785 - Line 1184 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 786 - Line 1185 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 787 - Line 1188 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 788 - Line 1189 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 789 - Line 1191 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 790 - Line 1192 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 791 - Line 1193 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 792 - Line 1194 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 793 - Line 1196 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ############################### engine_option (normal) ok 794 - Line 1201 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 795 - Line 1206 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 796 - Line 1210 "[% ('a' == 'b') || 0 %]" => "0" ok 797 - Line 1211 "[% ('a' != 'b') || 0 %]" => "1" ok 798 - Line 1212 "[% ('a' == 'b') || 0 %]" => "0" ok 799 - Line 1213 "[% ('a' != 'b') || 0 %]" => "1" ok 800 - Line 1214 "[% ('a' == 'b') || 0 %]" => "1" ok 801 - Line 1215 "[% ('a' != 'b') || 0 %]" => "0" ok 802 - Line 1216 "[% ('7' == '7.0') || 0 %]" => "0" ok 803 - Line 1217 "[% ('7' == '7.0') || 0 %]" => "1" ok 804 - Line 1218 "[% (7 == 7.0) || 0 %]" => "1" ok 805 - Line 1219 "[% (7 == 7.0) || 0 %]" => "1" ### configuration ################################### engine_option (normal) ok 806 - Line 1224 "[% a = 7 %]$a" => "7" ok 807 - Line 1225 "[% a = 7 %]$a" => "7" ### PERL ############################################ engine_option (normal) ok 808 - Line 1230 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 809 - Line 1231 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 810 - Line 1232 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 811 - Line 1233 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 812 - Line 1234 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################ engine_option (normal) ok 813 - Line 1239 "[% BLOCK foo %][% PROCESS bar %][% END %][% BLOCK bar %][% PROCESS foo %][% END %][% PROCESS foo %]" => "" ### META ############################################ engine_option (normal) ok 814 - Line 1244 "[% template.name %]" => "input text" ok 815 - Line 1245 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 816 - Line 1246 "[% META name = 'bar' %][% template.name %]" => "bar" ok 817 - Line 1247 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 818 - Line 1248 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 819 - Line 1249 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ###################################### engine_option (normal) ok 820 - Line 1254 "[% a=3; b=\a; b; a %]" => "33" ok 821 - Line 1255 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 822 - Line 1257 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 823 - Line 1258 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 824 - Line 1260 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 825 - Line 1261 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 826 - Line 1263 "[% \a %]" => "CODE(0x1f981e4)" ok 827 - Line 1264 "[% b=\a; b %]" => "a sub []" ok 828 - Line 1265 "[% b=\a(1); b %]" => "a sub [1]" ok 829 - Line 1266 "[% b=\a; b(2) %]" => "a sub [2]" ok 830 - Line 1267 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 831 - Line 1268 "[% f=\j.k; j.k=7; f %]" => "7" ok 832 - Line 1270 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 833 - Line 1271 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 834 - Line 1272 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 835 - Line 1273 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 836 - Line 1275 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 837 - Line 1276 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################## engine_option (normal) ok 838 - Line 1287 "[% GET %]" => "" ok 839 - Line 1288 "[% GET GET %]" => "named_get" ok 840 - Line 1289 "[% GET get %]" => "lower_named_get" ok 841 - Line 1290 "[% GET ${'GET'} %]" => "bar" ok 842 - Line 1292 "[% GET = 1 %][% GET GET %]" => "" ok 843 - Line 1293 "[% SET GET = 1 %][% GET GET %]" => "1" ok 844 - Line 1295 "[% GET $hold_get %]" => "named_get" ok 845 - Line 1296 "[% GET $GET %]" => "value of named_get" ok 846 - Line 1297 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 847 - Line 1298 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 848 - Line 1299 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 849 - Line 1300 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################## engine_option (normal) ok 850 - Line 1305 "[% " \" " %]" => " " " ok 851 - Line 1306 "[% " \$foo " %]" => " $foo " ok 852 - Line 1307 "[% " \${foo} " %]" => " ${foo} " ok 853 - Line 1308 "[% " \n " %]" => " # " ok 854 - Line 1309 "[% " \t " %]" => " " ok 855 - Line 1310 "[% " \r " %]" => " " ok 856 - Line 1312 "[% 'foo\'bar' %]" => "foo'bar" ok 857 - Line 1313 "[% "foo\"bar" %]" => "foo"bar" ok 858 - Line 1314 "[% qw(foo \)).1 %]" => ")" ok 859 - Line 1315 "[% qw|foo \||.1 %]" => "|" ok 860 - Line 1317 "[% ' \' ' %]" => " ' " ok 861 - Line 1318 "[% ' \r ' %]" => " \r " ok 862 - Line 1319 "[% ' \n ' %]" => " \n " ok 863 - Line 1320 "[% ' \t ' %]" => " \t " ok 864 - Line 1321 "[% ' $foo ' %]" => " $foo " ok 865 - Line 1323 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 866 - Line 1324 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 867 - Line 1325 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 868 - Line 1326 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 869 - Line 1327 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 870 - Line 1328 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 871 - Line 1329 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 872 - Line 1331 "[% "[%" %]" => "[%" ok 873 - Line 1332 "[% "%]" %]" => "%]" ok 874 - Line 1333 "[% a = "[% %]" %][% a %]" => "[% %]" ok 875 - Line 1334 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 876 - Line 1336 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ok 877 - Line 1337 "[% qw([% 1 + 2 %]).join.eval %]" => "3" ok 878 - Line 1339 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval %]" => ">>>>>caught" ok 879 - Line 1340 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; f.eval;f.eval %]" => ">>foo>>foo" Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/Velocity.pm line 60. ok 880 - Line 1341 "[% '\#set($foo = 12)'|eval(syntax => 'velocity') %]|[% foo %]" => "|12" ### EVALUATE ######################################## engine_option (normal) ok 881 - Line 1346 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; EVALUATE f %]" => ">>>>>caught" ok 882 - Line 1347 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; EVALUATE f; EVALUATE f %]" => ">>foo>>foo" ok 883 - Line 1348 "[% EVALUATE '\#set($foo = 12)' syntax => 'velocity' %]|[% foo %]" => "|12" ### DUMP ############################################ engine_option (normal) ok 884 - Line 1355 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = undef; # " ok 885 - Line 1356 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = undef;" ok 886 - Line 1357 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 887 - Line 1358 "[% # p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 888 - Line 1359 "[% p = DUMP a, b; p.collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', undef ];" ok 889 - Line 1360 "[% p = DUMP a Useqq => 'b'; p.collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 890 - Line 1361 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 891 - Line 1362 "[% p = DUMP a; p.collapse %]|foo" => "|foo" ok 892 - Line 1363 "[% p = DUMP _a, b; p.collapse %]" => "DUMP: File "input text" line 1 _a, b = [ undef, 'c' ];" ok 893 - Line 1364 "[% p = DUMP {a => 'b'}; p.collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 894 - Line 1365 "[% p = DUMP _a; p.collapse %]" => "DUMP: File "input text" line 1 _a = undef;" ok 895 - Line 1366 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 896 - Line 1367 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 897 - Line 1368 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 898 - Line 1369 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 899 - Line 1370 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 900 - Line 1371 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 901 - Line 1373 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 902 - Line 1374 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 903 - Line 1376 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 904 - Line 1377 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 905 - Line 1378 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################## engine_option (normal) ok 906 - Line 1385 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 907 - Line 1386 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 908 - Line 1387 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 909 - Line 1388 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 910 - Line 1389 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 911 - Line 1390 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 912 - Line 1391 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 913 - Line 1394 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 914 - Line 1395 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 915 - Line 1396 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/HTE.pm line 71. ok 916 - Line 1398 "" => "FOO" ok 917 - Line 1399 "" => "7 8" ok 918 - Line 1400 "" => "1" ok 919 - Line 1401 "" => "1" ok 920 - Line 1402 "d" => "" ok 921 - Line 1404 "[% ""|eval(syntax => 'hte') %] = [% 6 %]" => "6 = 6" ok 922 - Line 1405 "[% ""|eval(syntax => 'ht') %] = [% 6 %]" => "" ok 923 - Line 1406 "[% ""|eval(syntax => 'ht') %] = [% 12 %]" => "12 = 12" ### CONFIG ########################################## engine_option (normal) ok 924 - Line 1414 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 925 - Line 1415 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 926 - Line 1416 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 927 - Line 1417 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 928 - Line 1418 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 929 - Line 1419 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 930 - Line 1420 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 931 - Line 1421 "[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => "0" ok 932 - Line 1422 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 933 - Line 1424 "[% CONFIG BOGUS => 2 %]bar" => "" ok 934 - Line 1426 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 935 - Line 1427 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 936 - Line 1429 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 937 - Line 1430 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 938 - Line 1431 "[% CONFIG ANYCASE => 1 %][% "[% get 1+2+3 %]" | eval %] = [% get 6 %]" => "6 = 6" ok 939 - Line 1432 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 940 - Line 1433 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 941 - Line 1434 "[% CONFIG SYNTAX => 'hte' %][% ""|eval %] = [% 6 %]" => "6 = 6" ok 942 - Line 1435 "[% "[% get 1+2+3 %]" | eval(ANYCASE => 1) %] = [% GET 6 %]" => "6 = 6" ok 943 - Line 1437 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 944 - Line 1438 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ok 945 - Line 1439 "[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => " d" ### DONE ############################################ engine_option (normal) ### GET ############################################# engine_option (compile_perl) ok 946 - Line 124 "[% foo %]" => "" ok 947 - Line 125 "[% foo %]" => "7" ok 948 - Line 126 "[% foo %]" => "7" ok 949 - Line 127 "[% foo %]" => "7" ok 950 - Line 128 "[% foo %]" => "Stash" ok 951 - Line 129 "[% foo %]" => "V" ok 952 - Line 130 "[% bar %]" => "" ok 953 - Line 131 "[% foo %]" => "Stash" ok 954 - Line 132 "[% bar %]" => "" ok 955 - Line 133 "[% foo %]" => "Stash" ok 956 - Line 134 "[% foo %]" => "Stash" ok 957 - Line 135 "[% foo %][% foo %][% foo %]" => "777" ok 958 - Line 136 "[% foo() %]" => "7" ok 959 - Line 137 "[% foo.bar %]" => "" ok 960 - Line 138 "[% foo.bar %]" => "" ok 961 - Line 139 "[% foo.bar %]" => "7" ok 962 - Line 140 "[% foo().bar %]" => "7" ok 963 - Line 141 "[% foo.0 %]" => "7" ok 964 - Line 142 "[% foo.10 %]" => "" ok 965 - Line 143 "[% foo %]" => "7" ok 966 - Line 144 "[% foo(7) %]" => "7" ok 967 - Line 145 "[% foo.length %]" => "1" ok 968 - Line 146 "[% foo.0 %]" => "7" ok 969 - Line 147 "[% foo(bar) %]" => "7" ok 970 - Line 148 "[% foo(bar.baz) %]" => "7" ok 971 - Line 149 "[% foo.seven %]" => "7" ok 972 - Line 150 "[% foo.seven() %]" => "7" ok 973 - Line 151 "[% foo.seven.length %]" => "1" ok 974 - Line 152 "[% foo.echo(7) %]" => "7" ok 975 - Line 153 "[% foo.many.0 %]" => "1" ok 976 - Line 154 "[% foo.many.10 %]" => "" ok 977 - Line 155 "[% foo.nomethod %]" => "" ok 978 - Line 156 "[% foo.nomethod.0 %]" => "" ok 979 - Line 158 "[% GET foo %]" => "" ok 980 - Line 159 "[% GET foo %]" => "7" ok 981 - Line 160 "[% GET foo.bar %]" => "" ok 982 - Line 161 "[% GET foo.bar %]" => "" ok 983 - Line 162 "[% GET foo.bar %]" => "7" ok 984 - Line 163 "[% GET foo.0 %]" => "7" ok 985 - Line 164 "[% GET foo %]" => "7" ok 986 - Line 165 "[% GET foo(7) %]" => "7" ok 987 - Line 167 "[% $name %]" => "" ok 988 - Line 168 "[% $name %]" => "7" ok 989 - Line 169 "[% $name.bar %]" => "" ok 990 - Line 170 "[% $name.bar %]" => "" ok 991 - Line 171 "[% $name.bar %]" => "7" ok 992 - Line 172 "[% $name().bar %]" => "7" ok 993 - Line 173 "[% $name.0 %]" => "7" ok 994 - Line 174 "[% $name %]" => "7" ok 995 - Line 175 "[% $name(7) %]" => "7" ok 996 - Line 177 "[% GET $name %]" => "" ok 997 - Line 178 "[% GET $name %]" => "7" ok 998 - Line 179 "[% GET $name.bar %]" => "" ok 999 - Line 180 "[% GET $name.bar %]" => "" ok 1000 - Line 181 "[% GET $name.bar %]" => "7" ok 1001 - Line 182 "[% GET $name.0 %]" => "7" ok 1002 - Line 183 "[% GET $name %]" => "7" ok 1003 - Line 184 "[% GET $name(7) %]" => "7" ok 1004 - Line 186 "[% $name %]" => "" ok 1005 - Line 187 "[% GET $name %]" => "" ok 1006 - Line 189 "[% ${name} %]" => "" ok 1007 - Line 190 "[% ${name} %]" => "7" ok 1008 - Line 191 "[% ${name}.bar %]" => "" ok 1009 - Line 192 "[% ${name}.bar %]" => "" ok 1010 - Line 193 "[% ${name}.bar %]" => "7" ok 1011 - Line 194 "[% ${name}().bar %]" => "7" ok 1012 - Line 195 "[% ${name}.0 %]" => "7" ok 1013 - Line 196 "[% ${name} %]" => "7" ok 1014 - Line 197 "[% ${name}(7) %]" => "7" ok 1015 - Line 199 "[% GET ${name} %]" => "" ok 1016 - Line 200 "[% GET ${name} %]" => "7" ok 1017 - Line 201 "[% GET ${name}.bar %]" => "" ok 1018 - Line 202 "[% GET ${name}.bar %]" => "" ok 1019 - Line 203 "[% GET ${name}.bar %]" => "7" ok 1020 - Line 204 "[% GET ${name}.0 %]" => "7" ok 1021 - Line 205 "[% GET ${name} %]" => "7" ok 1022 - Line 206 "[% GET ${name}(7) %]" => "7" ok 1023 - Line 208 "[% ${name} %]" => "" ok 1024 - Line 209 "[% GET ${name} %]" => "" ok 1025 - Line 210 "[% GET ${'foo'} %]" => "bar" ok 1026 - Line 212 "[% foo.$name %]" => "" ok 1027 - Line 213 "[% foo.$name %]" => "7" ok 1028 - Line 214 "[% foo.$name.baz %]" => "" ok 1029 - Line 216 "[% "hi" %]" => "hi" ok 1030 - Line 217 "[% "hi %]" => "" ok 1031 - Line 218 "[% 'hi' %]" => "hi" ok 1032 - Line 219 "[% 'hi %]" => "" ok 1033 - Line 220 "[% "$foo" %]" => "7" ok 1034 - Line 221 "[% "hi $foo" %]" => "hi 7" ok 1035 - Line 222 "[% "hi ${foo}" %]" => "hi 7" ok 1036 - Line 223 "[% 'hi $foo' %]" => "hi $foo" ok 1037 - Line 224 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 1038 - Line 225 "[% 7 %]" => "7" ok 1039 - Line 226 "[% -7 %]" => "-7" ok 1040 - Line 228 "[% "hi ${foo.seven}" %]" => "hi 7" ok 1041 - Line 229 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 1042 - Line 231 "[% _foo %]2" => "2" ok 1043 - Line 232 "[% $bar %]2" => "2" ok 1044 - Line 233 "[% __foo %]2" => "2" ok 1045 - Line 235 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 1046 - Line 236 "[% [0..10].-1 %]" => "10" ok 1047 - Line 237 "[% [0..10].${ 2.3 } %]" => "2" ok 1048 - Line 239 "[% (1 + 2)() %]" => "" ok 1049 - Line 240 "[% (1 + 2) %]" => "3" ok 1050 - Line 241 "[% (a) %]" => "2" ok 1051 - Line 242 "[% ('foo') %]" => "foo" ok 1052 - Line 243 "[% (a(2)) %]" => "2" ### SET ############################################# engine_option (compile_perl) ok 1053 - Line 248 "[% SET foo bar %][% foo %]" => "" ok 1054 - Line 249 "[% SET foo = 1 %][% foo %]" => "1" ok 1055 - Line 250 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 1056 - Line 251 "[% SET foo bar = 1 %][% foo %]" => "" ok 1057 - Line 252 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 1058 - Line 253 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 1059 - Line 255 "[% SET foo = [] %][% foo.0 %]" => "" ok 1060 - Line 256 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 1061 - Line 257 "[% SET foo = {} %][% foo.0 %]" => "" ok 1062 - Line 258 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 1063 - Line 259 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 1064 - Line 261 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 1065 - Line 262 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 1066 - Line 263 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 1067 - Line 264 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 1068 - Line 265 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 1069 - Line 266 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 1070 - Line 267 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 1071 - Line 268 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 1072 - Line 270 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 1073 - Line 271 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 1074 - Line 273 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 1075 - Line 274 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 1076 - Line 276 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 1077 - Line 278 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 1078 - Line 279 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 1079 - Line 280 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 1080 - Line 281 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 1081 - Line 283 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 1082 - Line 284 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 1083 - Line 285 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 1084 - Line 286 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 1085 - Line 287 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 1086 - Line 288 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 1087 - Line 289 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 1088 - Line 290 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 1089 - Line 291 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 1090 - Line 292 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 1091 - Line 294 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 1092 - Line 295 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 1093 - Line 296 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 1094 - Line 297 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 1095 - Line 298 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 1096 - Line 299 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 1097 - Line 300 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 1098 - Line 301 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 1099 - Line 302 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 1100 - Line 304 "[% foo = 1 %][% foo %]" => "1" ok 1101 - Line 305 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 1102 - Line 306 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 1103 - Line 308 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 1104 - Line 309 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 1105 - Line 311 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 1106 - Line 313 "[% _foo = 1 %][% _foo %]2" => "2" ok 1107 - Line 314 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################# engine_option (compile_perl) ok 1108 - Line 319 "[% foo; %]" => "1" ok 1109 - Line 320 "[% GET foo; %]" => "1" ok 1110 - Line 321 "[% GET foo; GET foo %]" => "11" ok 1111 - Line 322 "[% GET foo GET foo %]" => "11" ok 1112 - Line 323 "[% GET foo GET foo %]" => "" ok 1113 - Line 325 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 1114 - Line 326 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 1115 - Line 327 "[% a = 1 a = a + 2 a %]" => "3" ok 1116 - Line 329 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 1117 - Line 330 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 1118 - Line 331 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################## engine_option (compile_perl) ok 1119 - Line 337 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 1120 - Line 338 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 1121 - Line 339 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 1122 - Line 342 "[% foo %]" => "hi" ok 1123 - Line 343 "[% GET foo %]" => "hi" ok 1124 - Line 344 "[% CALL foo %]" => "" ok 1125 - CALL method actually called var ### scalar vmethods ################################# engine_option (compile_perl) ok 1126 - Line 351 "[% n.0 %]" => "7" ok 1127 - Line 352 "[% n.abs %]" => "7" ok 1128 - Line 353 "[% n.abs %]" => "7" ok 1129 - Line 354 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 1130 - Line 355 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 1131 - Line 356 "[% n.chunk(3).join %]" => "abc def g" ok 1132 - Line 357 "[% n.chunk(-3).join %]" => "a bcd efg" ok 1133 - Line 358 "[% n|collapse %]" => "a b" ok 1134 - Line 359 "[% n.cos.substr(0,5) %]" => "1" ok 1135 - Line 360 "[% n.cos.substr(0,5) %]" => "0.707" ok 1136 - Line 361 "[% n.defined %]" => "1" ok 1137 - Line 362 "[% n.defined %]" => "" ok 1138 - Line 363 "[% n.defined %]" => "1" ok 1139 - Line 364 "[% n.exp.substr(0,5) %]" => "2.718" ok 1140 - Line 365 "[% n.exp.log.substr(0,5) %]" => "8" ok 1141 - Line 366 "[% n.fmt %]" => "7" ok 1142 - Line 367 "[% n.fmt('%02d') %]" => "07" ok 1143 - Line 368 "[% n.fmt('%0*d', 3) %]" => "007" ok 1144 - Line 369 "[% n.fmt('(%s)') %]" => "(a # b)" ok 1145 - Line 370 "[% n|format('%02d') %]" => "07" ok 1146 - Line 371 "[% n|format('%0*d', 3) %]" => "007" ok 1147 - Line 372 "[% n|format('(%s)') %]" => "(a) # (b)" ok 1148 - Line 373 "[% n.hash.items.1 %]" => "b" ok 1149 - Line 374 "[% n.hex %]" => "255" ok 1150 - Line 375 "[% n|html %]" => "&" ok 1151 - Line 376 "[% n|indent %]" => " a # b" ok 1152 - Line 377 "[% n|indent(2) %]" => " a # b" ok 1153 - Line 378 "[% n|indent('wow ') %]" => "wow a # wow b" ok 1154 - Line 379 "[% n.int %]" => "123" ok 1155 - Line 380 "[% n.int %]" => "123" ok 1156 - Line 381 "[% n.int %]" => "0" ok 1157 - Line 382 "[% n.item %]" => "7" ok 1158 - Line 383 "[% n.lc %]" => "abc" ok 1159 - Line 384 "[% n|lcfirst %]" => "fOO" ok 1160 - Line 385 "[% n.length %]" => "3" ok 1161 - Line 386 "[% n.list.0 %]" => "abc" ok 1162 - Line 387 "[% n.log.substr(0,5) %]" => "4.605" ok 1163 - Line 388 "[% n|lower %]" => "abc" ok 1164 - Line 389 "[% n.match('foo').join %]" => "" ok 1165 - Line 390 "[% n.match('foo').join %]" => "1" ok 1166 - Line 391 "[% n.match('foo',1).join %]" => "foo" ok 1167 - Line 392 "[% n.match('(foo)').join %]" => "foo" ok 1168 - Line 393 "[% n.match('(foo)').join %]" => "foo" ok 1169 - Line 394 "[% n.match('(foo)',1).join %]" => "foo foo" ok 1170 - Line 395 "[% n.null %]" => "" ok 1171 - Line 396 "[% n.oct %]" => "255" ok 1172 - Line 397 "[% n.rand %]" => "1.7078857421875" ok 1173 - Line 398 "[% n.rand %]" => "0.245574951171875" ok 1174 - Line 399 "[% n.remove('bc') %]" => "a" ok 1175 - Line 400 "[% n.remove('bc') %]" => "aa" ok 1176 - Line 401 "[% n.repeat %]" => "1" ok 1177 - Line 402 "[% n.repeat(0) %]" => "" ok 1178 - Line 403 "[% n.repeat(1) %]" => "1" ok 1179 - Line 404 "[% n.repeat(2) %]" => "11" ok 1180 - Line 405 "[% n.repeat(2,'|') %]" => "1|1" ok 1181 - Line 406 "[% n.replace('foo', 'bar') %]" => "barbar" ok 1182 - Line 407 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 1183 - Line 408 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 1184 - Line 409 "[% n.search('foo') %]" => "" ok 1185 - Line 410 "[% n.search('foo') %]" => "1" ok 1186 - Line 411 "[% n.sin.substr(0,5) %]" => "0" ok 1187 - Line 412 "[% n.sin.substr(0,5) %]" => "1" ok 1188 - Line 413 "[% n.size %]" => "1" ok 1189 - Line 414 "[% n.split.join('|') %]" => "abc" ok 1190 - Line 415 "[% n.split.join('|') %]" => "a|b|c" ok 1191 - Line 416 "[% n.split.join('|') %]" => "a|b|c" ok 1192 - Line 417 "[% n.split(u,2).join('|') %]" => "a|b c" ok 1193 - Line 419 "[% n.split('/').join('|') %]" => "a|b|c" ok 1194 - Line 420 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 1195 - Line 421 "[% n.sprintf(7) %]" => "7" ok 1196 - Line 422 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 1197 - Line 423 "[% n.sqrt %]" => "3" # testing stderr ... ok ok 1198 - Line 424 "[% n.srand; 12 %]" => "12" ok 1199 - Line 425 "[% n.stderr %]" => "" ok 1200 - Line 426 "[% n|trim %]" => "a b" ok 1201 - Line 427 "[% n.uc %]" => "FOO" ok 1202 - Line 428 "[% n|ucfirst %]" => "Foo" ok 1203 - Line 429 "[% n|upper %]" => "FOO" ok 1204 - Line 430 "[% n|uri %]" => "a%20b" ### list vmethods ################################### engine_option (compile_perl) ok 1205 - Line 435 "[% a.defined %]" => "1" ok 1206 - Line 436 "[% a.defined(1) %]" => "1" ok 1207 - Line 437 "[% a.defined(3) %]" => "" ok 1208 - Line 438 "[% a.first %]" => "2" ok 1209 - Line 439 "[% a.first(3).join %]" => "2 3 4" ok 1210 - Line 440 "[% a.fmt %]" => "2 3" ok 1211 - Line 441 "[% a.fmt('%02d') %]" => "02 03" ok 1212 - Line 442 "[% a.fmt('%02d',' ') %]" => "02 03" ok 1213 - Line 443 "[% a.fmt('%02d','|') %]" => "02|03" ok 1214 - Line 444 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 1215 - Line 445 "[% a.grep.join %]" => "2 3" ok 1216 - Line 446 "[% a.grep(2).join %]" => "2" ok 1217 - Line 447 "[% a.hash.items.join %]" => "2 3" ok 1218 - Line 448 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 1219 - Line 449 "[% a.import(5) %]|[% a.join %]" => "|2 3" ok 1220 - Line 451 "[% a.import([5]) %]|[% a.join %]" => "|2 3 5" ok 1221 - Line 453 "[% a.item %]" => "2" ok 1222 - Line 454 "[% a.item(1) %]" => "3" ok 1223 - Line 455 "[% a.join %]" => "2 3" ok 1224 - Line 456 "[% a.join('|') %]" => "2|3" ok 1225 - Line 457 "[% a.last %]" => "10" ok 1226 - Line 458 "[% a.last(3).join %]" => "8 9 10" ok 1227 - Line 459 "[% a.list.join %]" => "2 3" ok 1228 - Line 460 "[% a.max %]" => "1" ok 1229 - Line 461 "[% a.merge(5).join %]" => "2 3" ok 1230 - Line 462 "[% a.merge([5]).join %]" => "2 3 5" ok 1231 - Line 463 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 1232 - Line 464 "[% a.nsort.join %]" => "1 2 3" ok 1233 - Line 465 "[% a.nsort('b').0.b %]" => "7" ok 1234 - Line 466 "[% a.pop %][% a.join %]" => "32" ok 1235 - Line 467 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 1236 - Line 468 "[% a.pick %]" => "2" ok 1237 - Line 469 "[% a.pick(5).join('') %]" => "23322" ok 1238 - Line 470 "[% a.reverse.join %]" => "3 2" ok 1239 - Line 471 "[% a.shift %][% a.join %]" => "23" ok 1240 - Line 472 "[% a.size %]" => "2" ok 1241 - Line 473 "[% a.slice.join %]" => "2 3 4 5" ok 1242 - Line 474 "[% a.slice(2).join %]" => "4 5" ok 1243 - Line 475 "[% a.slice(0,2).join %]" => "2 3 4" ok 1244 - Line 476 "[% a.sort.join %]" => "1 2 3" ok 1245 - Line 477 "[% a.sort('b').0.b %]" => "wee" ok 1246 - Line 478 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 1247 - Line 479 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 1248 - Line 480 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 1249 - Line 481 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 1250 - Line 482 "[% a.unique.join %]" => "2 3" ok 1251 - Line 483 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods ################################### engine_option (compile_perl) ok 1252 - Line 488 "[% h.defined %]" => "1" ok 1253 - Line 489 "[% h.defined('a') %]" => "1" ok 1254 - Line 490 "[% h.defined('b') %]" => "" ok 1255 - Line 491 "[% h.defined('a') %]" => "" ok 1256 - Line 492 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 1257 - Line 493 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 1258 - Line 494 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 1259 - Line 495 "[% h.each.sort.join %]" => "1 2 a b" ok 1260 - Line 496 "[% h.exists('a') %]" => "1" ok 1261 - Line 497 "[% h.exists('b') %]" => "" ok 1262 - Line 498 "[% h.exists('a') %]" => "1" ok 1263 - Line 499 "[% h.fmt %]" => "b B # c C" ok 1264 - Line 500 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 1265 - Line 501 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 1266 - Line 502 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 1267 - Line 503 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 1268 - Line 504 "[% h.hash.fmt %]" => "b B # c C" ok 1269 - Line 505 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 1270 - Line 506 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 1271 - Line 507 "[% h.item('a') %]" => "A" ok 1272 - Line 508 "[% h.item('_a') %]" => "" ok 1273 - Line 509 "[% h.items.sort.join %]" => "1 2 a b" ok 1274 - Line 510 "[% h.keys.sort.join %]" => "a b" ok 1275 - Line 511 "[% h.list('each').sort.join %]" => "1 2 a b" ok 1276 - Line 512 "[% h.list('keys').sort.join %]" => "a b" ok 1277 - Line 513 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 1278 - Line 514 "[% h.list('values').sort.join %]" => "1 2" ok 1279 - Line 515 "[% h.null %]" => "" ok 1280 - Line 516 "[% h.nsort.join %]" => "b a" ok 1281 - Line 517 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 1282 - Line 518 "[% h.size %]" => "2" ok 1283 - Line 519 "[% h.sort.join %]" => "b a" ok 1284 - Line 520 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ########################### engine_option (compile_perl) ok 1285 - Line 525 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 1286 - Line 526 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 1287 - Line 527 "[% sprintf('%d %d', 7, 8) %] d" => " d" ok 1288 - Line 528 "[% int(2.234) %]" => "2" ok 1289 - Line 530 "[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => "2442" ### more virtual methods / filters ################## engine_option (compile_perl) ok 1290 - Line 535 "[% [0 .. 10].reverse.1 %]" => "9" ok 1291 - Line 536 "[% {a => 'A'}.a %]" => "A" ok 1292 - Line 537 "[% 'This is a string'.length %]" => "16" ok 1293 - Line 538 "[% 123.length %]" => "3" ok 1294 - Line 539 "[% 123.2.length %]" => "5" ok 1295 - Line 540 "[% -123.2.length %]" => "-5" ok 1296 - Line 541 "[% (-123.2).length %]" => "6" ok 1297 - Line 542 "[% a = 23; a.0 %]" => "23" ok 1298 - Line 543 "[% 1.rand %]" => "0.110137939453125" ok 1299 - Line 545 "[% n.size %]" => "SIZE" ok 1300 - Line 546 "[% n|size %]" => "2" ok 1301 - Line 548 "[% foo | eval %]" => "baz" ok 1302 - Line 549 "[% "1" | indent(2) %]" => " 1" ok 1303 - Line 552 "[% n FILTER size %]" => "1" ok 1304 - Line 554 "[% n FILTER repeat %]" => "1" ok 1305 - Line 555 "[% n FILTER repeat(0) %]" => "" ok 1306 - Line 556 "[% n FILTER repeat(1) %]" => "1" ok 1307 - Line 557 "[% n FILTER repeat(2) %]" => "11" ok 1308 - Line 558 "[% n FILTER repeat(2,'|') %]" => "1|1" ok 1309 - Line 560 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 1310 - Line 561 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 1311 - Line 562 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 1312 - Line 563 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 1313 - Line 564 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 1314 - Line 565 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 1315 - Line 567 "[% "hi" FILTER $foo %]" => "hihi" ok 1316 - Line 568 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 1317 - Line 569 "[% "hi" FILTER foo %]" => "hihi" ok 1318 - Line 570 "[% "hi" FILTER foo %]" => "hihi" ok 1319 - Line 571 "[% "hi" FILTER foo(2) %]" => "hihi" ok 1320 - Line 573 "[% ["a".."z"].pick %]" => "e" ok 1321 - Line 575 "[% ' ' | uri %]" => "%20" ok 1322 - Line 577 "[% "one".fmt %]" => "one" ok 1323 - Line 578 "[% 2.fmt("%02d") %]" => "02" ok 1324 - Line 580 "[% [1..3].fmt %]" => "1 2 3" ok 1325 - Line 581 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 1326 - Line 582 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 1327 - Line 584 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 1328 - Line 585 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 1329 - Line 586 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 1330 - Line 588 "[% 1|format("%s") %]" => "1" ok 1331 - Line 589 "[% 1|format("%*s", 6) %]" => " 1" ok 1332 - Line 590 "[% 1|format("%-*s", 6) %]" => "1 " ok 1333 - Line 592 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 1334 - Line 593 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 1335 - Line 594 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ### virtual objects ################################# engine_option (compile_perl) ok 1336 - Line 599 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 1337 - Line 600 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 1338 - Line 601 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 1339 - Line 603 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 1340 - Line 604 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 1341 - Line 605 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 1342 - Line 606 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 1343 - Line 607 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ok 1344 - Line 609 "[% {a => 1, b => 2} | Hash.keys | List.sort | List.join(", ") %]" => "a, b" ### chomping ######################################## engine_option (compile_perl) ok 1345 - Line 614 " [% foo %]" => " " ok 1346 - Line 615 " [%- foo %]" => "" ok 1347 - Line 616 " # [%- foo %]" => "" ok 1348 - Line 617 " # [%- foo %]" => "" ok 1349 - Line 618 " # [%- foo %]" => " # " ok 1350 - Line 619 " # [%- foo %]" => " # " ok 1351 - Line 620 " # [%- foo %]" => " " ok 1352 - Line 621 " # # [%- foo %]" => " # " ok 1353 - Line 623 "[% 7 %] " => "7 " ok 1354 - Line 624 "[% 7 -%] " => "7 " ok 1355 - Line 625 "[% 7 -%] # " => "7" ok 1356 - Line 626 "[% 7 -%] # " => "7" ok 1357 - Line 627 "[% 7 -%] # " => "7 " ok 1358 - Line 628 "[% 7 -%] # # " => "7 # " ok 1359 - Line 629 "[% 7 -%] # " => "7 " ### string operators ################################ engine_option (compile_perl) ok 1360 - Line 634 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 1361 - Line 635 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 1362 - Line 636 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 1363 - Line 637 "[% "b" gt "c" %]<<<" => "<<<" ok 1364 - Line 638 "[% "b" gt "a" %]<<<" => "1<<<" ok 1365 - Line 639 "[% "b" ge "c" %]<<<" => "<<<" ok 1366 - Line 640 "[% "b" ge "b" %]<<<" => "1<<<" ok 1367 - Line 641 "[% "b" lt "c" %]<<<" => "1<<<" ok 1368 - Line 642 "[% "b" lt "a" %]<<<" => "<<<" ok 1369 - Line 643 "[% "b" le "a" %]<<<" => "<<<" ok 1370 - Line 644 "[% "b" le "b" %]<<<" => "1<<<" ok 1371 - Line 645 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 1372 - Line 646 "[% "b" cmp "b" %]<<<" => "0<<<" ok 1373 - Line 647 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################## engine_option (compile_perl) ok 1374 - Line 652 "[% 1 + 2 %]" => "3" ok 1375 - Line 653 "[% 1 + 2 + 3 %]" => "6" ok 1376 - Line 654 "[% (1 + 2) %]" => "3" ok 1377 - Line 655 "[% 2 - 1 %]" => "1" ok 1378 - Line 656 "[% -1 + 2 %]" => "1" ok 1379 - Line 657 "[% -1+2 %]" => "1" ok 1380 - Line 658 "[% 2 - 1 %]" => "1" ok 1381 - Line 659 "[% 2-1 %]" => "1" ok 1382 - Line 660 "[% 2 - -1 %]" => "3" ok 1383 - Line 661 "[% 4 * 2 %]" => "8" ok 1384 - Line 662 "[% 4 / 2 %]" => "2" ok 1385 - Line 663 "[% 10 / 3 %]" => "3.33333333333333" ok 1386 - Line 664 "[% 10 div 3 %]" => "3" ok 1387 - Line 665 "[% 2 ** 3 %]" => "8" ok 1388 - Line 666 "[% 1 + 2 * 3 %]" => "7" ok 1389 - Line 667 "[% 3 * 2 + 1 %]" => "7" ok 1390 - Line 668 "[% (1 + 2) * 3 %]" => "9" ok 1391 - Line 669 "[% 3 * (1 + 2) %]" => "9" ok 1392 - Line 670 "[% 1 + 2 ** 3 %]" => "9" ok 1393 - Line 671 "[% 2 * 2 ** 3 %]" => "16" ok 1394 - Line 672 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 1395 - Line 673 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 1396 - Line 675 "[% a = 1; (a += 2) %]" => "3" ok 1397 - Line 676 "[% a = 1; (a -= 2) %]" => "-1" ok 1398 - Line 677 "[% a = 4; (a /= 2) %]" => "2" ok 1399 - Line 678 "[% a = 1; (a *= 2) %]" => "2" ok 1400 - Line 679 "[% a = 3; (a **= 2) %]" => "9" ok 1401 - Line 680 "[% a = 1; (a %= 2) %]" => "1" ok 1402 - Line 681 "[% a = 1; (a += 2 + 3) %]" => "6" ok 1403 - Line 682 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 1404 - Line 683 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 1405 - Line 685 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 1406 - Line 686 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 1407 - Line 688 "[% a = 2; a -= 3; a %]" => "-1" ok 1408 - Line 689 "[% a = 2; a *= 3; a %]" => "6" ok 1409 - Line 690 "[% a = 2; a /= .5; a %]" => "4" ok 1410 - Line 691 "[% a = 8; a %= 3; a %]" => "2" ok 1411 - Line 692 "[% a = 2; a **= 3; a %]" => "8" ok 1412 - Line 694 "[% a = 1 %][% ++a %][% a %]" => "22" ok 1413 - Line 695 "[% a = 1 %][% a++ %][% a %]" => "12" ok 1414 - Line 696 "[% a = 1 %][% --a %][% a %]" => "00" ok 1415 - Line 697 "[% a = 1 %][% a-- %][% a %]" => "10" ok 1416 - Line 698 "[% a++ FOR [1..3] %]" => "012" ok 1417 - Line 699 "[% --a FOR [1..3] %]" => "-1-2-3" ok 1418 - Line 701 "[% 2 > 3 %]<<<" => "<<<" ok 1419 - Line 702 "[% 2 > 1 %]<<<" => "1<<<" ok 1420 - Line 703 "[% 2 >= 3 %]<<<" => "<<<" ok 1421 - Line 704 "[% 2 >= 2 %]<<<" => "1<<<" ok 1422 - Line 705 "[% 2 < 3 %]<<<" => "1<<<" ok 1423 - Line 706 "[% 2 < 1 %]<<<" => "<<<" ok 1424 - Line 707 "[% 2 <= 1 %]<<<" => "<<<" ok 1425 - Line 708 "[% 2 <= 2 %]<<<" => "1<<<" ok 1426 - Line 709 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 1427 - Line 710 "[% 2 <=> 2 %]<<<" => "0<<<" ok 1428 - Line 711 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ############################### engine_option (compile_perl) ok 1429 - Line 716 "[% 5 && 6 %]" => "6" ok 1430 - Line 717 "[% 5 || 6 %]" => "5" ok 1431 - Line 718 "[% 0 || 6 %]" => "6" ok 1432 - Line 719 "[% 0 && 6 %]" => "0" ok 1433 - Line 720 "[% 0 && 0 %]" => "0" ok 1434 - Line 721 "[% 5 && 6 && 7%]" => "7" ok 1435 - Line 722 "[% 0 || 1 || 2 %]" => "1" ok 1436 - Line 724 "[% 5 + (0 || 5) %]" => "10" ok 1437 - Line 727 "[% 1 ? 2 : 3 %]" => "2" ok 1438 - Line 728 "[% 0 ? 2 : 3 %]" => "3" ok 1439 - Line 729 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 1440 - Line 730 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 1441 - Line 732 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 1442 - Line 733 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 1443 - Line 734 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 1444 - Line 736 "[% 0 ? 2 : 3 %]" => "3" ok 1445 - Line 737 "[% 1 ? 2 : 3 %]" => "2" ok 1446 - Line 738 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 1447 - Line 739 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 1448 - Line 740 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 1449 - Line 741 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 1450 - Line 742 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 1451 - Line 744 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 1452 - Line 746 "[% foo //= 2 ; foo %]" => "2" ok 1453 - Line 747 "[% foo = 3; foo //= 2; foo %]" => "3" ok 1454 - Line 748 "[% foo = 3; SET foo; foo //= 2; foo %]" => "2" ok 1455 - Line 750 "[% 5 // 6 %]" => "5" ok 1456 - Line 751 "[% foo // 6 %]" => "6" ok 1457 - Line 752 "[% foo // 6 %]" => "6" ok 1458 - Line 753 "[% foo // 6 %]" => "" ok 1459 - Line 754 "[% foo // 6 %]" => "bar" ok 1460 - Line 756 "[% foo err 6 %]" => "6" ok 1461 - Line 757 "[% foo ERR 6 %]" => "6" ### regex ########################################### engine_option (compile_perl) ok 1462 - Line 762 "[% /foo/ %]" => "(?-xism:foo)" ok 1463 - Line 763 "[% /foo %]" => "" ok 1464 - Line 764 "[% /foo/x %]" => "(?-xism:(?x:foo))" ok 1465 - Line 765 "[% /foo/xi %]" => "(?-xism:(?xi:foo))" ok 1466 - Line 766 "[% /foo/xis %]" => "(?-xism:(?xis:foo))" ok 1467 - Line 767 "[% /foo/xism %]" => "(?-xism:(?xism:foo))" ok 1468 - Line 768 "[% /foo/e %]" => "" ok 1469 - Line 769 "[% /foo/g %]" => "" ok 1470 - Line 770 "[% /foo %]" => "" ok 1471 - Line 771 "[% /foo**/ %]" => "" ok 1472 - Line 772 "[% /fo\/o/ %]" => "(?-xism:fo/o)" ok 1473 - Line 773 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE######################## engine_option (compile_perl) ok 1474 - Line 778 "[% PROCESS foo %]one" => "" ok 1475 - Line 779 "[% BLOCK foo %]one" => "" ok 1476 - Line 780 "[% BLOCK foo %][% END %]one" => "one" ok 1477 - Line 781 "[% BLOCK %][% END %]one" => "one" ok 1478 - Line 782 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 1479 - Line 783 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 1480 - Line 784 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 1481 - Line 785 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 1482 - Line 786 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 1483 - Line 787 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 1484 - Line 788 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 1485 - Line 789 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 1486 - Line 790 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 1487 - Line 791 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 1488 - Line 792 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 1489 - Line 793 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 1490 - Line 794 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 1491 - Line 796 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% PROCESS $self.a self = 'blah' %]" => "Ta-Da" ok 1492 - Line 797 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% INCLUDE $self.a self = 'blah' %]" => "Ta-Da" ok 1493 - Line 799 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 1494 - Line 800 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ok 1495 - Line 802 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "" ok 1496 - Line 804 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "FOOBARFOO" ### IF / UNLESS / ELSIF / ELSE ###################### engine_option (compile_perl) ok 1497 - Line 809 "[% IF 1 %]Yes[% END %]" => "Yes" ok 1498 - Line 810 "[% IF 0 %]Yes[% END %]" => "" ok 1499 - Line 811 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 1500 - Line 812 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 1501 - Line 813 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 1502 - Line 814 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 1503 - Line 816 "[% UNLESS 1 %]Yes[% END %]" => "" ok 1504 - Line 817 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 1505 - Line 818 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 1506 - Line 819 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 1507 - Line 820 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 1508 - Line 821 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################## engine_option (compile_perl) ok 1509 - Line 826 "[%\# one %]" => "" ok 1510 - Line 827 "[%\# # one %]" => "" ok 1511 - Line 828 "[%-\# # one %]" => "" ok 1512 - Line 829 "[% \# # one %]" => "ONE" ok 1513 - Line 830 "[%\# BLOCK one %]" => "" ok 1514 - Line 831 "[%\# BLOCK one %]two" => "two" ok 1515 - Line 832 "[%\# BLOCK one %]two[% END %]" => "" ok 1516 - Line 833 "[%\# BLOCK one %]two[% END %]three" => "" ok 1517 - Line 834 "[% # \# # -%] # foo" => "foo" ### FOREACH / NEXT / LAST ########################### engine_option (compile_perl) ok 1518 - Line 842 "[% FOREACH foo %]" => "" ok 1519 - Line 843 "[% FOREACH foo %][% END %]" => "" ok 1520 - Line 844 "[% FOREACH foo %]bar[% END %]" => "" ok 1521 - Line 845 "[% FOREACH foo %]bar[% END %]" => "bar" ok 1522 - Line 846 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 1523 - Line 847 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 1524 - Line 848 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 1525 - Line 849 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 1526 - Line 850 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 1527 - Line 851 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 1528 - Line 852 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 1529 - Line 853 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 1530 - Line 854 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 1531 - Line 855 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 1532 - Line 856 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 1533 - Line 857 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 1534 - Line 858 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 1535 - Line 859 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 1536 - Line 861 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 1537 - Line 866 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 1538 - Line 867 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 1539 - Line 868 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 1540 - Line 869 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 1541 - Line 870 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 1542 - Line 871 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 1543 - Line 872 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 1544 - Line 873 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 1545 - Line 874 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 1546 - Line 875 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 1547 - Line 876 "[% f.b = 1 %][% FOREACH f.b = [1..10] %][% f.b %][% END %][% f.b %]" => "1234567891010" ok 1548 - Line 877 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 1549 - Line 878 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 1550 - Line 879 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 1551 - Line 882 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 1552 - Line 883 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 1553 - Line 884 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 1554 - Line 885 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ### LOOP ############################################ engine_option (compile_perl) ok 1555 - Line 890 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 1556 - Line 900 "[% 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 ########################################### engine_option (compile_perl) ok 1557 - Line 912 "[% WHILE foo %]" => "" ok 1558 - Line 913 "[% WHILE foo %][% END %]" => "" ok 1559 - Line 914 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 1560 - Line 915 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 1561 - Line 916 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 1562 - Line 918 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 1563 - Line 919 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 1564 - Line 920 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 1565 - Line 921 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 1566 - Line 923 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 1567 - Line 924 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 1568 - Line 925 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 1569 - Line 926 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ########################### engine_option (compile_perl) ok 1570 - Line 931 "[% STOP %]" => "" ok 1571 - Line 932 "One[% STOP %]Two" => "One" ok 1572 - Line 933 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 1573 - Line 934 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 1574 - Line 935 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 1575 - Line 937 "[% RETURN %]" => "" ok 1576 - Line 938 "One[% RETURN %]Two" => "One" ok 1577 - Line 939 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 1578 - Line 940 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 1579 - Line 941 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 1580 - Line 943 "[% CLEAR %]" => "" ok 1581 - Line 944 "One[% CLEAR %]Two" => "Two" ok 1582 - Line 945 "[% BLOCK foo %]One[% CLEAR %]Two[% END %]First[% PROCESS foo %]Last" => "FirstTwoLast" ok 1583 - Line 946 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% CLEAR %][% END %][% END %]" => "23" ok 1584 - Line 947 "[% FOREACH f = [1..3] %][% IF loop.first %][% CLEAR %][% END %][% f %][% END %]" => "123" ok 1585 - Line 948 "[% FOREACH f = [1..3] %][% f %][% IF loop.last %][% CLEAR %][% END %][% END %]" => "" ok 1586 - Line 949 "[% FOREACH f = [1..3] %][% IF loop.last %][% CLEAR %][% END %][% f %][% END %]" => "3" ### post opererative directives ##################### engine_option (compile_perl) ok 1587 - Line 954 "[% GET foo IF 1 %]" => "1" ok 1588 - Line 955 "[% f FOREACH f = [1..3] %]" => "123" ok 1589 - Line 957 "2[% GET foo IF 1 IF 2 %]" => "21" ok 1590 - Line 958 "2[% GET foo IF 1 IF 0 %]" => "2" ok 1591 - Line 959 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 1592 - Line 960 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 1593 - Line 961 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 1594 - Line 962 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 1595 - Line 963 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 1596 - Line 965 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 1597 - Line 966 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 1598 - Line 968 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ####################################### engine_option (compile_perl) ok 1599 - Line 973 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 1600 - Line 974 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 1601 - Line 975 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 1602 - Line 976 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 1603 - Line 977 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################ engine_option (compile_perl) ok 1604 - Line 982 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 1605 - Line 983 "[% TAGS default %][% 1 + 2 %]" => "3" ok 1606 - Line 984 "[% TAGS html %]" => "3" ok 1607 - Line 985 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 1608 - Line 986 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 1609 - Line 987 "[% TAGS php %]" => "3" ok 1610 - Line 988 "[% TAGS star %][* 1 + 2 *]" => "3" ok 1611 - Line 989 "[% TAGS template %][% 1 + 2 %]" => "3" ok 1612 - Line 990 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 1613 - Line 991 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 1614 - Line 992 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 1615 - Line 994 "[% TAGS html %] " => "3" ok 1616 - Line 995 "[% TAGS html %]" => "3" ok 1617 - Line 996 "[% TAGS html %] # " => "3" ok 1618 - Line 997 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 1619 - Line 998 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 1620 - Line 1000 "[% TAGS %]" => "3" ok 1621 - Line 1002 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 1622 - Line 1003 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 1623 - Line 1004 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 1624 - Line 1005 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 1625 - Line 1006 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 1626 - Line 1007 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 1627 - Line 1009 "[% TAGS html -->" => "3" ok 1628 - Line 1010 "[% TAGS html ; 7 -->" => "73" ok 1629 - Line 1011 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE ################################### engine_option (compile_perl) ok 1630 - Line 1016 "[% SWITCH 1 %][% END %]hi" => "hi" ok 1631 - Line 1017 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 1632 - Line 1018 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 1633 - Line 1019 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 1634 - Line 1020 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 1635 - Line 1021 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 1636 - Line 1022 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 1637 - Line 1023 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 1638 - Line 1024 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 1639 - Line 1026 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ##################### engine_option (compile_perl) ok 1640 - Line 1031 "[% TRY %][% END %]hi" => "hi" ok 1641 - Line 1032 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 1642 - Line 1033 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "" ok 1643 - Line 1034 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %][% END %]hi" => "Foohi" ok 1644 - Line 1035 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 1645 - Line 1036 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 1646 - Line 1037 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 1647 - Line 1038 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "" ok 1648 - Line 1039 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 1649 - Line 1041 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 1650 - Line 1042 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 1651 - Line 1043 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 1652 - Line 1044 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "" ok 1653 - Line 1046 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 1654 - Line 1047 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 1655 - Line 1048 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 1656 - Line 1049 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 1657 - Line 1050 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ###################################### engine_option (compile_perl) ok 1658 - Line 1056 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 1659 - Line 1058 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################# engine_option (compile_perl) ok 1660 - Line 1064 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 1661 - Line 1065 "[% USE Foo %]one" => "one" ok 1662 - Line 1066 "[% USE Foo2 %]one" => "one" ok 1663 - Line 1067 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 1664 - Line 1068 "[% USE Foo2(bar = 'baz') %]one[% Foo2.bar %]" => "onebarbaz" ok 1665 - Line 1069 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 1666 - Line 1070 "[% USE d = Foo(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 1667 - Line 1071 "[% USE d.d = Foo(bar = 'baz') %]one[% d.d.bar %]" => "" ok 1668 - Line 1073 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 1669 - Line 1074 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 1670 - Line 1077 "[% USE Foo %]one" => "one" ### MACRO ########################################### engine_option (compile_perl) ok 1671 - Line 1082 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 1672 - Line 1083 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 1673 - Line 1084 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 1674 - Line 1085 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 1675 - Line 1086 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 1676 - Line 1087 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 1677 - Line 1088 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ok 1678 - Line 1090 "[% MACRO f BLOCK %]>[% TRY; f ; CATCH ; "caught" ; END %][% END %][% f %]" => ">>>caught" ### DEBUG ########################################### engine_option (compile_perl) ok 1679 - Line 1095 " # [% one %]" => " # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 1680 - Line 1096 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 1681 - Line 1097 "[% one %] # " => "(1)ONE # " ok 1682 - Line 1098 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 1683 - Line 1099 "[% one; # one %]" => "(1)ONE(2)ONE" ok 1684 - Line 1101 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 1685 - Line 1103 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 1686 - Line 1104 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - def is undefined # " ### constants ####################################### engine_option (compile_perl) ok 1687 - Line 1123 "[% constants.harry %]" => "do_this_once" ok 1688 - Line 1124 "[% constants.harry.length %]" => "12" ok 1689 - Line 1125 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 1690 - Line 1126 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 1691 - Line 1127 "[% constants.foo.${constants.bang} %]" => "57" ok 1692 - Line 1128 "[% constants.foo.$bam.${constants.bing} %]" => "42" ok 1693 - Line 1129 "[% bam = 'somethingelse' %][% constants.foo.$bam.${constants.bing} %]" => "42" ok 1694 - Line 1131 "[% constants.${"harry"} %]" => "do_this_once" ok 1695 - Line 1132 "[% ${"constants"}.harry %]" => "foo" ok 1696 - Line 1134 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### INTERPOLATE ##################################### engine_option (compile_perl) ok 1697 - Line 1139 "Foo $one Bar" => "Foo ONE Bar" ok 1698 - Line 1140 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 1699 - Line 1141 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 1700 - Line 1145 "Foo \ Bar" => "Foo \ Bar" ok 1701 - Line 1146 "Foo \\ Bar" => "Foo \\ Bar" ok 1702 - Line 1147 "Foo \n Bar" => "Foo \n Bar" ok 1703 - Line 1148 "Foo \$a Bar" => "Foo $a Bar" ok 1704 - Line 1149 "Foo \\$a Bar" => "Foo \\7 Bar" ok 1705 - Line 1150 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 1706 - Line 1151 "Foo $a.B Bar" => "Foo 7 Bar" ok 1707 - Line 1152 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 1708 - Line 1153 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 1709 - Line 1155 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 1710 - Line 1156 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 1711 - Line 1157 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 1712 - Line 1158 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 1713 - Line 1159 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 1714 - Line 1160 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 1715 - Line 1161 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### ANYCASE / TRIM ################################## engine_option (compile_perl) ok 1716 - Line 1166 "[% GET %]" => "" ok 1717 - Line 1167 "[% GET GET %]" => "ONE" ok 1718 - Line 1168 "[% get one %]" => "ONE" ok 1719 - Line 1169 "[% get %]" => "" ok 1720 - Line 1170 "[% get get %]" => "ONE" ok 1721 - Line 1172 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 1722 - Line 1173 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => "hi" ok 1723 - Line 1174 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi" ok 1724 - Line 1175 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi" ok 1725 - Line 1176 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => "hi" ok 1726 - Line 1177 "A[% TRY %] # hi # [% END %]" => "A # hi" ok 1727 - Line 1179 "[% FOO %]" => "foo" ### V1DOLLAR ######################################## engine_option (compile_perl) ok 1728 - Line 1184 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 1729 - Line 1185 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 1730 - Line 1188 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 1731 - Line 1189 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 1732 - Line 1191 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 1733 - Line 1192 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 1734 - Line 1193 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 1735 - Line 1194 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 1736 - Line 1196 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ############################### engine_option (compile_perl) ok 1737 - Line 1201 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 1738 - Line 1206 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 1739 - Line 1210 "[% ('a' == 'b') || 0 %]" => "0" ok 1740 - Line 1211 "[% ('a' != 'b') || 0 %]" => "1" ok 1741 - Line 1212 "[% ('a' == 'b') || 0 %]" => "0" ok 1742 - Line 1213 "[% ('a' != 'b') || 0 %]" => "1" ok 1743 - Line 1214 "[% ('a' == 'b') || 0 %]" => "1" ok 1744 - Line 1215 "[% ('a' != 'b') || 0 %]" => "0" ok 1745 - Line 1216 "[% ('7' == '7.0') || 0 %]" => "0" ok 1746 - Line 1217 "[% ('7' == '7.0') || 0 %]" => "1" ok 1747 - Line 1218 "[% (7 == 7.0) || 0 %]" => "1" ok 1748 - Line 1219 "[% (7 == 7.0) || 0 %]" => "1" ### configuration ################################### engine_option (compile_perl) ok 1749 - Line 1224 "[% a = 7 %]$a" => "7" ok 1750 - Line 1225 "[% a = 7 %]$a" => "7" ### PERL ############################################ engine_option (compile_perl) ok 1751 - Line 1230 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 1752 - Line 1231 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 1753 - Line 1232 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 1754 - Line 1233 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 1755 - Line 1234 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################ engine_option (compile_perl) ok 1756 - Line 1239 "[% BLOCK foo %][% PROCESS bar %][% END %][% BLOCK bar %][% PROCESS foo %][% END %][% PROCESS foo %]" => "" ### META ############################################ engine_option (compile_perl) ok 1757 - Line 1244 "[% template.name %]" => "input text" ok 1758 - Line 1245 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 1759 - Line 1246 "[% META name = 'bar' %][% template.name %]" => "bar" ok 1760 - Line 1247 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 1761 - Line 1248 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 1762 - Line 1249 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ###################################### engine_option (compile_perl) ok 1763 - Line 1254 "[% a=3; b=\a; b; a %]" => "33" ok 1764 - Line 1255 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 1765 - Line 1257 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 1766 - Line 1258 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 1767 - Line 1260 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 1768 - Line 1261 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 1769 - Line 1263 "[% \a %]" => "CODE(0x221a9ec)" ok 1770 - Line 1264 "[% b=\a; b %]" => "a sub []" ok 1771 - Line 1265 "[% b=\a(1); b %]" => "a sub [1]" ok 1772 - Line 1266 "[% b=\a; b(2) %]" => "a sub [2]" ok 1773 - Line 1267 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 1774 - Line 1268 "[% f=\j.k; j.k=7; f %]" => "7" ok 1775 - Line 1270 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 1776 - Line 1271 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 1777 - Line 1272 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 1778 - Line 1273 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 1779 - Line 1275 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 1780 - Line 1276 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################## engine_option (compile_perl) ok 1781 - Line 1287 "[% GET %]" => "" ok 1782 - Line 1288 "[% GET GET %]" => "named_get" ok 1783 - Line 1289 "[% GET get %]" => "lower_named_get" ok 1784 - Line 1290 "[% GET ${'GET'} %]" => "bar" ok 1785 - Line 1292 "[% GET = 1 %][% GET GET %]" => "" ok 1786 - Line 1293 "[% SET GET = 1 %][% GET GET %]" => "1" ok 1787 - Line 1295 "[% GET $hold_get %]" => "named_get" ok 1788 - Line 1296 "[% GET $GET %]" => "value of named_get" ok 1789 - Line 1297 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 1790 - Line 1298 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 1791 - Line 1299 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 1792 - Line 1300 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################## engine_option (compile_perl) ok 1793 - Line 1305 "[% " \" " %]" => " " " ok 1794 - Line 1306 "[% " \$foo " %]" => " $foo " ok 1795 - Line 1307 "[% " \${foo} " %]" => " ${foo} " ok 1796 - Line 1308 "[% " \n " %]" => " # " ok 1797 - Line 1309 "[% " \t " %]" => " " ok 1798 - Line 1310 "[% " \r " %]" => " " ok 1799 - Line 1312 "[% 'foo\'bar' %]" => "foo'bar" ok 1800 - Line 1313 "[% "foo\"bar" %]" => "foo"bar" ok 1801 - Line 1314 "[% qw(foo \)).1 %]" => ")" ok 1802 - Line 1315 "[% qw|foo \||.1 %]" => "|" ok 1803 - Line 1317 "[% ' \' ' %]" => " ' " ok 1804 - Line 1318 "[% ' \r ' %]" => " \r " ok 1805 - Line 1319 "[% ' \n ' %]" => " \n " ok 1806 - Line 1320 "[% ' \t ' %]" => " \t " ok 1807 - Line 1321 "[% ' $foo ' %]" => " $foo " ok 1808 - Line 1323 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 1809 - Line 1324 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 1810 - Line 1325 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 1811 - Line 1326 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 1812 - Line 1327 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 1813 - Line 1328 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 1814 - Line 1329 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 1815 - Line 1331 "[% "[%" %]" => "[%" ok 1816 - Line 1332 "[% "%]" %]" => "%]" ok 1817 - Line 1333 "[% a = "[% %]" %][% a %]" => "[% %]" ok 1818 - Line 1334 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 1819 - Line 1336 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ok 1820 - Line 1337 "[% qw([% 1 + 2 %]).join.eval %]" => "3" ok 1821 - Line 1339 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval %]" => ">>>>>caught" ok 1822 - Line 1340 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; f.eval;f.eval %]" => ">>foo>>foo" ok 1823 - Line 1341 "[% '\#set($foo = 12)'|eval(syntax => 'velocity') %]|[% foo %]" => "|12" ### EVALUATE ######################################## engine_option (compile_perl) ok 1824 - Line 1346 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; EVALUATE f %]" => ">>>>>caught" ok 1825 - Line 1347 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; EVALUATE f; EVALUATE f %]" => ">>foo>>foo" ok 1826 - Line 1348 "[% EVALUATE '\#set($foo = 12)' syntax => 'velocity' %]|[% foo %]" => "|12" ### DUMP ############################################ engine_option (compile_perl) ok 1827 - Line 1355 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = undef; # " ok 1828 - Line 1356 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = undef;" ok 1829 - Line 1357 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 1830 - Line 1358 "[% # p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 1831 - Line 1359 "[% p = DUMP a, b; p.collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', undef ];" ok 1832 - Line 1360 "[% p = DUMP a Useqq => 'b'; p.collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 1833 - Line 1361 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 1834 - Line 1362 "[% p = DUMP a; p.collapse %]|foo" => "|foo" ok 1835 - Line 1363 "[% p = DUMP _a, b; p.collapse %]" => "DUMP: File "input text" line 1 _a, b = [ undef, 'c' ];" ok 1836 - Line 1364 "[% p = DUMP {a => 'b'}; p.collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 1837 - Line 1365 "[% p = DUMP _a; p.collapse %]" => "DUMP: File "input text" line 1 _a = undef;" ok 1838 - Line 1366 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 1839 - Line 1367 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 1840 - Line 1368 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 1841 - Line 1369 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 1842 - Line 1370 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 1843 - Line 1371 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 1844 - Line 1373 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 1845 - Line 1374 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 1846 - Line 1376 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 1847 - Line 1377 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 1848 - Line 1378 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################## engine_option (compile_perl) ok 1849 - Line 1385 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 1850 - Line 1386 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 1851 - Line 1387 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 1852 - Line 1388 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 1853 - Line 1389 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 1854 - Line 1390 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 1855 - Line 1391 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 1856 - Line 1394 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 1857 - Line 1395 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 1858 - Line 1396 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 1859 - Line 1398 "" => "FOO" ok 1860 - Line 1399 "" => "7 8" ok 1861 - Line 1400 "" => "1" ok 1862 - Line 1401 "" => "1" ok 1863 - Line 1402 "d" => "" ok 1864 - Line 1404 "[% ""|eval(syntax => 'hte') %] = [% 6 %]" => "6 = 6" ok 1865 - Line 1405 "[% ""|eval(syntax => 'ht') %] = [% 6 %]" => "" ok 1866 - Line 1406 "[% ""|eval(syntax => 'ht') %] = [% 12 %]" => "12 = 12" ### CONFIG ########################################## engine_option (compile_perl) ok 1867 - Line 1414 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 1868 - Line 1415 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 1869 - Line 1416 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 1870 - Line 1417 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 1871 - Line 1418 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 1872 - Line 1419 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 1873 - Line 1420 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 1874 - Line 1421 "[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => "0" ok 1875 - Line 1422 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 1876 - Line 1424 "[% CONFIG BOGUS => 2 %]bar" => "" ok 1877 - Line 1426 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 1878 - Line 1427 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 1879 - Line 1429 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 1880 - Line 1430 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 1881 - Line 1431 "[% CONFIG ANYCASE => 1 %][% "[% get 1+2+3 %]" | eval %] = [% get 6 %]" => "6 = 6" ok 1882 - Line 1432 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 1883 - Line 1433 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 1884 - Line 1434 "[% CONFIG SYNTAX => 'hte' %][% ""|eval %] = [% 6 %]" => "6 = 6" ok 1885 - Line 1435 "[% "[% get 1+2+3 %]" | eval(ANYCASE => 1) %] = [% GET 6 %]" => "6 = 6" ok 1886 - Line 1437 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 1887 - Line 1438 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ok 1888 - Line 1439 "[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => " d" ### DONE ############################################ engine_option (compile_perl) ### GET ############################################# engine_option (stream) ok 1889 - Line 124 "[% foo %]" => "" ok 1890 - Line 125 "[% foo %]" => "7" ok 1891 - Line 126 "[% foo %]" => "7" ok 1892 - Line 127 "[% foo %]" => "7" ok 1893 - Line 128 "[% foo %]" => "Stash" ok 1894 - Line 129 "[% foo %]" => "V" ok 1895 - Line 130 "[% bar %]" => "" ok 1896 - Line 131 "[% foo %]" => "Stash" ok 1897 - Line 132 "[% bar %]" => "" ok 1898 - Line 133 "[% foo %]" => "Stash" ok 1899 - Line 134 "[% foo %]" => "Stash" ok 1900 - Line 135 "[% foo %][% foo %][% foo %]" => "777" ok 1901 - Line 136 "[% foo() %]" => "7" ok 1902 - Line 137 "[% foo.bar %]" => "" ok 1903 - Line 138 "[% foo.bar %]" => "" ok 1904 - Line 139 "[% foo.bar %]" => "7" ok 1905 - Line 140 "[% foo().bar %]" => "7" ok 1906 - Line 141 "[% foo.0 %]" => "7" ok 1907 - Line 142 "[% foo.10 %]" => "" ok 1908 - Line 143 "[% foo %]" => "7" ok 1909 - Line 144 "[% foo(7) %]" => "7" ok 1910 - Line 145 "[% foo.length %]" => "1" ok 1911 - Line 146 "[% foo.0 %]" => "7" ok 1912 - Line 147 "[% foo(bar) %]" => "7" ok 1913 - Line 148 "[% foo(bar.baz) %]" => "7" ok 1914 - Line 149 "[% foo.seven %]" => "7" ok 1915 - Line 150 "[% foo.seven() %]" => "7" ok 1916 - Line 151 "[% foo.seven.length %]" => "1" ok 1917 - Line 152 "[% foo.echo(7) %]" => "7" ok 1918 - Line 153 "[% foo.many.0 %]" => "1" ok 1919 - Line 154 "[% foo.many.10 %]" => "" ok 1920 - Line 155 "[% foo.nomethod %]" => "" ok 1921 - Line 156 "[% foo.nomethod.0 %]" => "" ok 1922 - Line 158 "[% GET foo %]" => "" ok 1923 - Line 159 "[% GET foo %]" => "7" ok 1924 - Line 160 "[% GET foo.bar %]" => "" ok 1925 - Line 161 "[% GET foo.bar %]" => "" ok 1926 - Line 162 "[% GET foo.bar %]" => "7" ok 1927 - Line 163 "[% GET foo.0 %]" => "7" ok 1928 - Line 164 "[% GET foo %]" => "7" ok 1929 - Line 165 "[% GET foo(7) %]" => "7" ok 1930 - Line 167 "[% $name %]" => "" ok 1931 - Line 168 "[% $name %]" => "7" ok 1932 - Line 169 "[% $name.bar %]" => "" ok 1933 - Line 170 "[% $name.bar %]" => "" ok 1934 - Line 171 "[% $name.bar %]" => "7" ok 1935 - Line 172 "[% $name().bar %]" => "7" ok 1936 - Line 173 "[% $name.0 %]" => "7" ok 1937 - Line 174 "[% $name %]" => "7" ok 1938 - Line 175 "[% $name(7) %]" => "7" ok 1939 - Line 177 "[% GET $name %]" => "" ok 1940 - Line 178 "[% GET $name %]" => "7" ok 1941 - Line 179 "[% GET $name.bar %]" => "" ok 1942 - Line 180 "[% GET $name.bar %]" => "" ok 1943 - Line 181 "[% GET $name.bar %]" => "7" ok 1944 - Line 182 "[% GET $name.0 %]" => "7" ok 1945 - Line 183 "[% GET $name %]" => "7" ok 1946 - Line 184 "[% GET $name(7) %]" => "7" ok 1947 - Line 186 "[% $name %]" => "" ok 1948 - Line 187 "[% GET $name %]" => "" ok 1949 - Line 189 "[% ${name} %]" => "" ok 1950 - Line 190 "[% ${name} %]" => "7" ok 1951 - Line 191 "[% ${name}.bar %]" => "" ok 1952 - Line 192 "[% ${name}.bar %]" => "" ok 1953 - Line 193 "[% ${name}.bar %]" => "7" ok 1954 - Line 194 "[% ${name}().bar %]" => "7" ok 1955 - Line 195 "[% ${name}.0 %]" => "7" ok 1956 - Line 196 "[% ${name} %]" => "7" ok 1957 - Line 197 "[% ${name}(7) %]" => "7" ok 1958 - Line 199 "[% GET ${name} %]" => "" ok 1959 - Line 200 "[% GET ${name} %]" => "7" ok 1960 - Line 201 "[% GET ${name}.bar %]" => "" ok 1961 - Line 202 "[% GET ${name}.bar %]" => "" ok 1962 - Line 203 "[% GET ${name}.bar %]" => "7" ok 1963 - Line 204 "[% GET ${name}.0 %]" => "7" ok 1964 - Line 205 "[% GET ${name} %]" => "7" ok 1965 - Line 206 "[% GET ${name}(7) %]" => "7" ok 1966 - Line 208 "[% ${name} %]" => "" ok 1967 - Line 209 "[% GET ${name} %]" => "" ok 1968 - Line 210 "[% GET ${'foo'} %]" => "bar" ok 1969 - Line 212 "[% foo.$name %]" => "" ok 1970 - Line 213 "[% foo.$name %]" => "7" ok 1971 - Line 214 "[% foo.$name.baz %]" => "" ok 1972 - Line 216 "[% "hi" %]" => "hi" ok 1973 - Line 217 "[% "hi %]" => "" ok 1974 - Line 218 "[% 'hi' %]" => "hi" ok 1975 - Line 219 "[% 'hi %]" => "" ok 1976 - Line 220 "[% "$foo" %]" => "7" ok 1977 - Line 221 "[% "hi $foo" %]" => "hi 7" ok 1978 - Line 222 "[% "hi ${foo}" %]" => "hi 7" ok 1979 - Line 223 "[% 'hi $foo' %]" => "hi $foo" ok 1980 - Line 224 "[% 'hi ${foo}' %]" => "hi ${foo}" ok 1981 - Line 225 "[% 7 %]" => "7" ok 1982 - Line 226 "[% -7 %]" => "-7" ok 1983 - Line 228 "[% "hi ${foo.seven}" %]" => "hi 7" ok 1984 - Line 229 "[% "hi ${foo.echo(7)}" %]" => "hi 7" ok 1985 - Line 231 "[% _foo %]2" => "2" ok 1986 - Line 232 "[% $bar %]2" => "2" ok 1987 - Line 233 "[% __foo %]2" => "2" ok 1988 - Line 235 "[% qw/Foo Bar Baz/.0 %]" => "Foo" ok 1989 - Line 236 "[% [0..10].-1 %]" => "10" ok 1990 - Line 237 "[% [0..10].${ 2.3 } %]" => "2" ok 1991 - Line 239 "[% (1 + 2)() %]" => "" ok 1992 - Line 240 "[% (1 + 2) %]" => "3" ok 1993 - Line 241 "[% (a) %]" => "2" ok 1994 - Line 242 "[% ('foo') %]" => "foo" ok 1995 - Line 243 "[% (a(2)) %]" => "2" ### SET ############################################# engine_option (stream) ok 1996 - Line 248 "[% SET foo bar %][% foo %]" => "" ok 1997 - Line 249 "[% SET foo = 1 %][% foo %]" => "1" ok 1998 - Line 250 "[% SET foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 1999 - Line 251 "[% SET foo bar = 1 %][% foo %]" => "" ok 2000 - Line 252 "[% SET foo = 1 ; bar = 1 %][% foo %]" => "1" ok 2001 - Line 253 "[% SET foo = 1 %][% SET foo %][% foo %]" => "" ok 2002 - Line 255 "[% SET foo = [] %][% foo.0 %]" => "" ok 2003 - Line 256 "[% SET foo = [1, 2, 3] %][% foo.1 %]" => "2" ok 2004 - Line 257 "[% SET foo = {} %][% foo.0 %]" => "" ok 2005 - Line 258 "[% SET foo = {1 => 2} %][% foo.1 %]" => "2" ok 2006 - Line 259 "[% SET foo = {'1' => 2} %][% foo.1 %]" => "2" ok 2007 - Line 261 "[% SET name = 1 %][% SET foo = name %][% foo %]" => "1" ok 2008 - Line 262 "[% SET name = 1 %][% SET foo = $name %][% foo %]" => "" ok 2009 - Line 263 "[% SET name = 1 %][% SET foo = ${name} %][% foo %]" => "" ok 2010 - Line 264 "[% SET name = 1 %][% SET foo = "$name" %][% foo %]" => "1" ok 2011 - Line 265 "[% SET name = 1 foo = name %][% foo %]" => "1" ok 2012 - Line 266 "[% SET name = 1 %][% SET foo = {$name => 2} %][% foo.1 %]" => "2" ok 2013 - Line 267 "[% SET name = 1 %][% SET foo = {"$name" => 2} %][% foo.1 %]" => "2" ok 2014 - Line 268 "[% SET name = 1 %][% SET foo = {${name} => 2} %][% foo.1 %]" => "2" ok 2015 - Line 270 "[% SET name = 7 %][% SET foo = {'2' => name} %][% foo.2 %]" => "7" ok 2016 - Line 271 "[% SET name = 7 %][% SET foo = {'2' => "$name"} %][% foo.2 %]" => "7" ok 2017 - Line 273 "[% SET name = 7 %][% SET foo = [1, name, 3] %][% foo.1 %]" => "7" ok 2018 - Line 274 "[% SET name = 7 %][% SET foo = [1, "$name", 3] %][% foo.1 %]" => "7" ok 2019 - Line 276 "[% SET foo = { bar => { baz => [0, 7, 2] } } %][% foo.bar.baz.1 %]" => "7" ok 2020 - Line 278 "[% SET foo.bar = 1 %][% foo.bar %]" => "1" ok 2021 - Line 279 "[% SET foo.bar.baz.bing = 1 %][% foo.bar.baz.bing %]" => "1" ok 2022 - Line 280 "[% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 1" ok 2023 - Line 281 "[% SET foo.bar = [] %][% SET foo.bar.2 = 1 %][% foo.bar.2 %] [% foo.bar.size %]" => "1 3" ok 2024 - Line 283 "[% SET name = 'two' %][% SET $name = 3 %][% two %]" => "3" ok 2025 - Line 284 "[% SET name = 'two' %][% SET ${name} = 3 %][% two %]" => "3" ok 2026 - Line 285 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.2 %]" => "3" ok 2027 - Line 286 "[% SET name = 2 %][% SET foo.$name = 3 %][% foo.$name %]" => "3" ok 2028 - Line 287 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 2029 - Line 288 "[% SET name = 2 %][% SET foo.${name} = 3 %][% foo.2 %]" => "3" ok 2030 - Line 289 "[% SET name = 'two' %][% SET $name.foo = 3 %][% two.foo %]" => "3" ok 2031 - Line 290 "[% SET name = 'two' %][% SET ${name}.foo = 3 %][% two.foo %]" => "3" ok 2032 - Line 291 "[% SET name = 'two' %][% SET foo.$name.foo = 3 %][% foo.two.foo %]" => "3" ok 2033 - Line 292 "[% SET name = 'two' %][% SET foo.${name}.foo = 3 %][% foo.two.foo %]" => "3" ok 2034 - Line 294 "[% SET foo = [1..10] %][% foo.6 %]" => "7" ok 2035 - Line 295 "[% SET foo = [10..1] %][% foo.6 %]" => "" ok 2036 - Line 296 "[% SET foo = [-10..-1] %][% foo.6 %]" => "-4" ok 2037 - Line 297 "[% SET foo = [1..10, 21..30] %][% foo.12 %]" => "23" ok 2038 - Line 298 "[% SET foo = [..100] bar = 7 %][% bar %][% foo.0 %]" => "" ok 2039 - Line 299 "[% SET foo = [100..] bar = 7 %][% bar %][% foo.0 %]" => "" ok 2040 - Line 300 "[% SET foo = ['a'..'z'] %][% foo.6 %]" => "g" ok 2041 - Line 301 "[% SET foo = ['z'..'a'] %][% foo.6 %]" => "" ok 2042 - Line 302 "[% SET foo = ['a'..'z'].reverse %][% foo.6 %]" => "t" ok 2043 - Line 304 "[% foo = 1 %][% foo %]" => "1" ok 2044 - Line 305 "[% foo = 1 ; bar = 2 %][% foo %][% bar %]" => "12" ok 2045 - Line 306 "[% foo.bar = 2 %][% foo.bar %]" => "2" ok 2046 - Line 308 "[% a = "a" %]|[% (b = a) %]|[% a %]|[% b %]" => "|a|a|a" ok 2047 - Line 309 "[% a = "a" %][% (c = (b = a)) %][% a %][% b %][% c %]" => "aaaa" ok 2048 - Line 311 "[% a = qw{Foo Bar Baz} ; a.2 %]" => "Baz" ok 2049 - Line 313 "[% _foo = 1 %][% _foo %]2" => "2" ok 2050 - Line 314 "[% foo._bar %]2" => "2" ### multiple statements in same tag ################# engine_option (stream) ok 2051 - Line 319 "[% foo; %]" => "1" ok 2052 - Line 320 "[% GET foo; %]" => "1" ok 2053 - Line 321 "[% GET foo; GET foo %]" => "11" ok 2054 - Line 322 "[% GET foo GET foo %]" => "11" ok 2055 - Line 323 "[% GET foo GET foo %]" => "" ok 2056 - Line 325 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "12" ok 2057 - Line 326 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "232" ok 2058 - Line 327 "[% a = 1 a = a + 2 a %]" => "3" ok 2059 - Line 329 "[% foo = 1 bar = 2 %][% foo %][% bar %]" => "" ok 2060 - Line 330 "[% foo = 1 bar = 2 %][% foo = 3 bar %][% foo %][% bar %]" => "" ok 2061 - Line 331 "[% a = 1 a = a + 2 a %]" => "" ### CALL / DEFAULT ################################## engine_option (stream) ok 2062 - Line 337 "[% DEFAULT foo = 7 %][% foo %]" => "7" ok 2063 - Line 338 "[% SET foo = 5 %][% DEFAULT foo = 7 %][% foo %]" => "5" ok 2064 - Line 339 "[% DEFAULT foo.bar.baz.bing = 6 %][% foo.bar.baz.bing %]" => "6" ok 2065 - Line 342 "[% foo %]" => "hi" ok 2066 - Line 343 "[% GET foo %]" => "hi" ok 2067 - Line 344 "[% CALL foo %]" => "" ok 2068 - CALL method actually called var ### scalar vmethods ################################# engine_option (stream) ok 2069 - Line 351 "[% n.0 %]" => "7" ok 2070 - Line 352 "[% n.abs %]" => "7" ok 2071 - Line 353 "[% n.abs %]" => "7" ok 2072 - Line 354 "[% n.atan2.substr(0, 6) %]" => "1.5707" ok 2073 - Line 355 "[% (4 * n.atan2(1)).substr(0, 7) %]" => "3.14159" ok 2074 - Line 356 "[% n.chunk(3).join %]" => "abc def g" ok 2075 - Line 357 "[% n.chunk(-3).join %]" => "a bcd efg" ok 2076 - Line 358 "[% n|collapse %]" => "a b" ok 2077 - Line 359 "[% n.cos.substr(0,5) %]" => "1" ok 2078 - Line 360 "[% n.cos.substr(0,5) %]" => "0.707" ok 2079 - Line 361 "[% n.defined %]" => "1" ok 2080 - Line 362 "[% n.defined %]" => "" ok 2081 - Line 363 "[% n.defined %]" => "1" ok 2082 - Line 364 "[% n.exp.substr(0,5) %]" => "2.718" ok 2083 - Line 365 "[% n.exp.log.substr(0,5) %]" => "8" ok 2084 - Line 366 "[% n.fmt %]" => "7" ok 2085 - Line 367 "[% n.fmt('%02d') %]" => "07" ok 2086 - Line 368 "[% n.fmt('%0*d', 3) %]" => "007" ok 2087 - Line 369 "[% n.fmt('(%s)') %]" => "(a # b)" ok 2088 - Line 370 "[% n|format('%02d') %]" => "07" ok 2089 - Line 371 "[% n|format('%0*d', 3) %]" => "007" ok 2090 - Line 372 "[% n|format('(%s)') %]" => "(a) # (b)" ok 2091 - Line 373 "[% n.hash.items.1 %]" => "b" ok 2092 - Line 374 "[% n.hex %]" => "255" ok 2093 - Line 375 "[% n|html %]" => "&" ok 2094 - Line 376 "[% n|indent %]" => " a # b" ok 2095 - Line 377 "[% n|indent(2) %]" => " a # b" ok 2096 - Line 378 "[% n|indent('wow ') %]" => "wow a # wow b" ok 2097 - Line 379 "[% n.int %]" => "123" ok 2098 - Line 380 "[% n.int %]" => "123" ok 2099 - Line 381 "[% n.int %]" => "0" ok 2100 - Line 382 "[% n.item %]" => "7" ok 2101 - Line 383 "[% n.lc %]" => "abc" ok 2102 - Line 384 "[% n|lcfirst %]" => "fOO" ok 2103 - Line 385 "[% n.length %]" => "3" ok 2104 - Line 386 "[% n.list.0 %]" => "abc" ok 2105 - Line 387 "[% n.log.substr(0,5) %]" => "4.605" ok 2106 - Line 388 "[% n|lower %]" => "abc" ok 2107 - Line 389 "[% n.match('foo').join %]" => "" ok 2108 - Line 390 "[% n.match('foo').join %]" => "1" ok 2109 - Line 391 "[% n.match('foo',1).join %]" => "foo" ok 2110 - Line 392 "[% n.match('(foo)').join %]" => "foo" ok 2111 - Line 393 "[% n.match('(foo)').join %]" => "foo" ok 2112 - Line 394 "[% n.match('(foo)',1).join %]" => "foo foo" ok 2113 - Line 395 "[% n.null %]" => "" ok 2114 - Line 396 "[% n.oct %]" => "255" ok 2115 - Line 397 "[% n.rand %]" => "1.7078857421875" ok 2116 - Line 398 "[% n.rand %]" => "0.245574951171875" ok 2117 - Line 399 "[% n.remove('bc') %]" => "a" ok 2118 - Line 400 "[% n.remove('bc') %]" => "aa" ok 2119 - Line 401 "[% n.repeat %]" => "1" ok 2120 - Line 402 "[% n.repeat(0) %]" => "" ok 2121 - Line 403 "[% n.repeat(1) %]" => "1" ok 2122 - Line 404 "[% n.repeat(2) %]" => "11" ok 2123 - Line 405 "[% n.repeat(2,'|') %]" => "1|1" ok 2124 - Line 406 "[% n.replace('foo', 'bar') %]" => "barbar" ok 2125 - Line 407 "[% n.replace('(foo)', 'bar$1') %]" => "barfoobarfoo" ok 2126 - Line 408 "[% n.replace('foo', 'bar', 0) %]" => "barfoo" ok 2127 - Line 409 "[% n.search('foo') %]" => "" ok 2128 - Line 410 "[% n.search('foo') %]" => "1" ok 2129 - Line 411 "[% n.sin.substr(0,5) %]" => "0" ok 2130 - Line 412 "[% n.sin.substr(0,5) %]" => "1" ok 2131 - Line 413 "[% n.size %]" => "1" ok 2132 - Line 414 "[% n.split.join('|') %]" => "abc" ok 2133 - Line 415 "[% n.split.join('|') %]" => "a|b|c" ok 2134 - Line 416 "[% n.split.join('|') %]" => "a|b|c" ok 2135 - Line 417 "[% n.split(u,2).join('|') %]" => "a|b c" ok 2136 - Line 419 "[% n.split('/').join('|') %]" => "a|b|c" ok 2137 - Line 420 "[% n.split('/', 2).join('|') %]" => "a|b/c" ok 2138 - Line 421 "[% n.sprintf(7) %]" => "7" # testing stderr ... ok ok 2139 - Line 422 "[% n.sprintf(3, 7, 12) %]" => "007 12" ok 2140 - Line 423 "[% n.sqrt %]" => "3" ok 2141 - Line 424 "[% n.srand; 12 %]" => "12" ok 2142 - Line 425 "[% n.stderr %]" => "" ok 2143 - Line 426 "[% n|trim %]" => "a b" ok 2144 - Line 427 "[% n.uc %]" => "FOO" ok 2145 - Line 428 "[% n|ucfirst %]" => "Foo" ok 2146 - Line 429 "[% n|upper %]" => "FOO" ok 2147 - Line 430 "[% n|uri %]" => "a%20b" ### list vmethods ################################### engine_option (stream) ok 2148 - Line 435 "[% a.defined %]" => "1" ok 2149 - Line 436 "[% a.defined(1) %]" => "1" ok 2150 - Line 437 "[% a.defined(3) %]" => "" ok 2151 - Line 438 "[% a.first %]" => "2" ok 2152 - Line 439 "[% a.first(3).join %]" => "2 3 4" ok 2153 - Line 440 "[% a.fmt %]" => "2 3" ok 2154 - Line 441 "[% a.fmt('%02d') %]" => "02 03" ok 2155 - Line 442 "[% a.fmt('%02d',' ') %]" => "02 03" ok 2156 - Line 443 "[% a.fmt('%02d','|') %]" => "02|03" ok 2157 - Line 444 "[% a.fmt('%0*d','|', 3) %]" => "002|003" ok 2158 - Line 445 "[% a.grep.join %]" => "2 3" ok 2159 - Line 446 "[% a.grep(2).join %]" => "2" ok 2160 - Line 447 "[% a.hash.items.join %]" => "2 3" ok 2161 - Line 448 "[% a.hash(5).items.sort.join %]" => "2 3 5 6" ok 2162 - Line 449 "[% a.import(5) %]|[% a.join %]" => "|2 3" ok 2163 - Line 451 "[% a.import([5]) %]|[% a.join %]" => "|2 3 5" ok 2164 - Line 453 "[% a.item %]" => "2" ok 2165 - Line 454 "[% a.item(1) %]" => "3" ok 2166 - Line 455 "[% a.join %]" => "2 3" ok 2167 - Line 456 "[% a.join('|') %]" => "2|3" ok 2168 - Line 457 "[% a.last %]" => "10" ok 2169 - Line 458 "[% a.last(3).join %]" => "8 9 10" ok 2170 - Line 459 "[% a.list.join %]" => "2 3" ok 2171 - Line 460 "[% a.max %]" => "1" ok 2172 - Line 461 "[% a.merge(5).join %]" => "2 3" ok 2173 - Line 462 "[% a.merge([5]).join %]" => "2 3 5" ok 2174 - Line 463 "[% a.merge([5]).null %][% a.join %]" => "2 3" ok 2175 - Line 464 "[% a.nsort.join %]" => "1 2 3" ok 2176 - Line 465 "[% a.nsort('b').0.b %]" => "7" ok 2177 - Line 466 "[% a.pop %][% a.join %]" => "32" ok 2178 - Line 467 "[% a.push(3) %][% a.join %]" => "2 3 3" ok 2179 - Line 468 "[% a.pick %]" => "2" ok 2180 - Line 469 "[% a.pick(5).join('') %]" => "23322" ok 2181 - Line 470 "[% a.reverse.join %]" => "3 2" ok 2182 - Line 471 "[% a.shift %][% a.join %]" => "23" ok 2183 - Line 472 "[% a.size %]" => "2" ok 2184 - Line 473 "[% a.slice.join %]" => "2 3 4 5" ok 2185 - Line 474 "[% a.slice(2).join %]" => "4 5" ok 2186 - Line 475 "[% a.slice(0,2).join %]" => "2 3 4" ok 2187 - Line 476 "[% a.sort.join %]" => "1 2 3" ok 2188 - Line 477 "[% a.sort('b').0.b %]" => "wee" ok 2189 - Line 478 "[% a.splice.join %]|[% a.join %]" => "2 3 4 5|" ok 2190 - Line 479 "[% a.splice(2).join %]|[% a.join %]" => "4 5|2 3" ok 2191 - Line 480 "[% a.splice(0,2).join %]|[% a.join %]" => "2 3|4 5" ok 2192 - Line 481 "[% a.splice(0,2,'hrm').join %]|[% a.join %]" => "2 3|hrm 4 5" ok 2193 - Line 482 "[% a.unique.join %]" => "2 3" ok 2194 - Line 483 "[% a.unshift(3) %][% a.join %]" => "3 2 3" ### hash vmethods ################################### engine_option (stream) ok 2195 - Line 488 "[% h.defined %]" => "1" ok 2196 - Line 489 "[% h.defined('a') %]" => "1" ok 2197 - Line 490 "[% h.defined('b') %]" => "" ok 2198 - Line 491 "[% h.defined('a') %]" => "" ok 2199 - Line 492 "[% h.delete('a') %]|[% h.keys.0 %]" => "|b" ok 2200 - Line 493 "[% h.delete('a', 'b').join %]|[% h.keys.0 %]" => "|" ok 2201 - Line 494 "[% h.delete('a', 'c').join %]|[% h.keys.0 %]" => "|b" ok 2202 - Line 495 "[% h.each.sort.join %]" => "1 2 a b" ok 2203 - Line 496 "[% h.exists('a') %]" => "1" ok 2204 - Line 497 "[% h.exists('b') %]" => "" ok 2205 - Line 498 "[% h.exists('a') %]" => "1" ok 2206 - Line 499 "[% h.fmt %]" => "b B # c C" ok 2207 - Line 500 "[% h.fmt('%s => %s') %]" => "b => B # c => C" ok 2208 - Line 501 "[% h.fmt('%s => %s', '|') %]" => "b => B|c => C" ok 2209 - Line 502 "[% h.fmt('%*s=>%s', '|', 3) %]" => " b=>B| c=>C" ok 2210 - Line 503 "[% h.fmt('%*s=>%*s', '|', 3, 4) %]" => " b=> B| c=> C" ok 2211 - Line 504 "[% h.hash.fmt %]" => "b B # c C" ok 2212 - Line 505 "[% h.import('a') %]|[% h.items.sort.join %]" => "|b B c C" ok 2213 - Line 506 "[% h.import({'b' => 'boo'}) %]|[% h.items.sort.join %]" => "|b boo c C" ok 2214 - Line 507 "[% h.item('a') %]" => "A" ok 2215 - Line 508 "[% h.item('_a') %]" => "" ok 2216 - Line 509 "[% h.items.sort.join %]" => "1 2 a b" ok 2217 - Line 510 "[% h.keys.sort.join %]" => "a b" ok 2218 - Line 511 "[% h.list('each').sort.join %]" => "1 2 a b" ok 2219 - Line 512 "[% h.list('keys').sort.join %]" => "a b" ok 2220 - Line 513 "[% h.list('pairs').0.items.sort.join %]" => "1 a key value" ok 2221 - Line 514 "[% h.list('values').sort.join %]" => "1 2" ok 2222 - Line 515 "[% h.null %]" => "" ok 2223 - Line 516 "[% h.nsort.join %]" => "b a" ok 2224 - Line 517 "[% h.pairs.0.items.sort.join %]" => "1 a key value" ok 2225 - Line 518 "[% h.size %]" => "2" ok 2226 - Line 519 "[% h.sort.join %]" => "b a" ok 2227 - Line 520 "[% h.values.sort.join %]" => "1 2" ### vmethods as functions ########################### engine_option (stream) ok 2228 - Line 525 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 2229 - Line 526 "[% sprintf('%d %d', 7, 8) %] d" => "7 8 d" ok 2230 - Line 527 "[% sprintf('%d %d', 7, 8) %] d" => " d" ok 2231 - Line 528 "[% int(2.234) %]" => "2" ok 2232 - Line 530 "[% int(2.234) ; int = 44; int(2.234) ; SET int; int(2.234) %]" => "2442" ### more virtual methods / filters ################## engine_option (stream) ok 2233 - Line 535 "[% [0 .. 10].reverse.1 %]" => "9" ok 2234 - Line 536 "[% {a => 'A'}.a %]" => "A" ok 2235 - Line 537 "[% 'This is a string'.length %]" => "16" ok 2236 - Line 538 "[% 123.length %]" => "3" ok 2237 - Line 539 "[% 123.2.length %]" => "5" ok 2238 - Line 540 "[% -123.2.length %]" => "-5" ok 2239 - Line 541 "[% (-123.2).length %]" => "6" ok 2240 - Line 542 "[% a = 23; a.0 %]" => "23" ok 2241 - Line 543 "[% 1.rand %]" => "0.110137939453125" ok 2242 - Line 545 "[% n.size %]" => "SIZE" ok 2243 - Line 546 "[% n|size %]" => "2" ok 2244 - Line 548 "[% foo | eval %]" => "baz" ok 2245 - Line 549 "[% "1" | indent(2) %]" => " 1" ok 2246 - Line 552 "[% n FILTER size %]" => "1" ok 2247 - Line 554 "[% n FILTER repeat %]" => "1" ok 2248 - Line 555 "[% n FILTER repeat(0) %]" => "" ok 2249 - Line 556 "[% n FILTER repeat(1) %]" => "1" ok 2250 - Line 557 "[% n FILTER repeat(2) %]" => "11" ok 2251 - Line 558 "[% n FILTER repeat(2,'|') %]" => "1|1" ok 2252 - Line 560 "[% n FILTER echo = repeat(2) %][% n FILTER echo %]" => "1111" ok 2253 - Line 561 "[% n FILTER echo = repeat(2) %][% n | echo %]" => "1111" ok 2254 - Line 562 "[% n FILTER echo = repeat(2) %][% n|echo.length %]" => "112" ok 2255 - Line 563 "[% n FILTER echo = repeat(2) %][% n FILTER $foo %]" => "1111" ok 2256 - Line 564 "[% n FILTER echo = repeat(2) %][% n | $foo %]" => "1111" ok 2257 - Line 565 "[% n FILTER echo = repeat(2) %][% n|$foo.length %]" => "112" ok 2258 - Line 567 "[% "hi" FILTER $foo %]" => "hihi" ok 2259 - Line 568 "[% FILTER $foo %]hi[% END %]" => "hihi" ok 2260 - Line 569 "[% "hi" FILTER foo %]" => "hihi" ok 2261 - Line 570 "[% "hi" FILTER foo %]" => "hihi" ok 2262 - Line 571 "[% "hi" FILTER foo(2) %]" => "hihi" ok 2263 - Line 573 "[% ["a".."z"].pick %]" => "e" ok 2264 - Line 575 "[% ' ' | uri %]" => "%20" ok 2265 - Line 577 "[% "one".fmt %]" => "one" ok 2266 - Line 578 "[% 2.fmt("%02d") %]" => "02" ok 2267 - Line 580 "[% [1..3].fmt %]" => "1 2 3" ok 2268 - Line 581 "[% [1..3].fmt("%02d") %]" => "01 02 03" ok 2269 - Line 582 "[% [1..3].fmt("%s", ", ") %]" => "1, 2, 3" ok 2270 - Line 584 "[% {a => "B", c => "D"}.fmt %]" => "a B # c D" ok 2271 - Line 585 "[% {a => "B", c => "D"}.fmt("%s:%s") %]" => "a:B # c:D" ok 2272 - Line 586 "[% {a => "B", c => "D"}.fmt("%s:%s", "; ") %]" => "a:B; c:D" ok 2273 - Line 588 "[% 1|format("%s") %]" => "1" ok 2274 - Line 589 "[% 1|format("%*s", 6) %]" => " 1" ok 2275 - Line 590 "[% 1|format("%-*s", 6) %]" => "1 " ok 2276 - Line 592 "[% 1.fmt("%-*s", 6) %]" => "1 " ok 2277 - Line 593 "[% [1,2].fmt("%-*s", "|", 6) %]" => "1 |2 " ok 2278 - Line 594 "[% {1=>2,3=>4}.fmt("%*s:%*s", "|", 3, 3) %]" => " 1: 2| 3: 4" ### virtual objects ################################# engine_option (stream) ok 2279 - Line 599 "[% a = "foobar" %][% Text.length(a) %]" => "6" ok 2280 - Line 600 "[% a = [1 .. 10] %][% List.size(a) %]" => "10" ok 2281 - Line 601 "[% a = {a=>"A", b=>"B"} ; Hash.size(a) %]" => "2" ok 2282 - Line 603 "[% a = Text.new("This is a string") %][% a.length %]" => "16" ok 2283 - Line 604 "[% a = List.new("one", "two", "three") %][% a.size %]" => "3" ok 2284 - Line 605 "[% a = Hash.new("one", "ONE") %][% a.one %]" => "ONE" ok 2285 - Line 606 "[% a = Hash.new(one = "ONE") %][% a.one %]" => "ONE" ok 2286 - Line 607 "[% a = Hash.new(one => "ONE") %][% a.one %]" => "ONE" ok 2287 - Line 609 "[% {a => 1, b => 2} | Hash.keys | List.sort | List.join(", ") %]" => "a, b" ### chomping ######################################## engine_option (stream) ok 2288 - Line 614 " [% foo %]" => " " ok 2289 - Line 615 " [%- foo %]" => "" ok 2290 - Line 616 " # [%- foo %]" => "" ok 2291 - Line 617 " # [%- foo %]" => "" ok 2292 - Line 618 " # [%- foo %]" => " # " ok 2293 - Line 619 " # [%- foo %]" => " # " ok 2294 - Line 620 " # [%- foo %]" => " " ok 2295 - Line 621 " # # [%- foo %]" => " # " ok 2296 - Line 623 "[% 7 %] " => "7 " ok 2297 - Line 624 "[% 7 -%] " => "7 " ok 2298 - Line 625 "[% 7 -%] # " => "7" ok 2299 - Line 626 "[% 7 -%] # " => "7" ok 2300 - Line 627 "[% 7 -%] # " => "7 " ok 2301 - Line 628 "[% 7 -%] # # " => "7 # " ok 2302 - Line 629 "[% 7 -%] # " => "7 " ### string operators ################################ engine_option (stream) ok 2303 - Line 634 "[% a = "foo"; a _ "bar" %]" => "foobar" ok 2304 - Line 635 "[% a = "foo"; a ~ "bar" %]" => "foobar" ok 2305 - Line 636 "[% a = "foo"; a ~= "bar"; a %]" => "foobar" ok 2306 - Line 637 "[% "b" gt "c" %]<<<" => "<<<" ok 2307 - Line 638 "[% "b" gt "a" %]<<<" => "1<<<" ok 2308 - Line 639 "[% "b" ge "c" %]<<<" => "<<<" ok 2309 - Line 640 "[% "b" ge "b" %]<<<" => "1<<<" ok 2310 - Line 641 "[% "b" lt "c" %]<<<" => "1<<<" ok 2311 - Line 642 "[% "b" lt "a" %]<<<" => "<<<" ok 2312 - Line 643 "[% "b" le "a" %]<<<" => "<<<" ok 2313 - Line 644 "[% "b" le "b" %]<<<" => "1<<<" ok 2314 - Line 645 "[% "a" cmp "b" %]<<<" => "-1<<<" ok 2315 - Line 646 "[% "b" cmp "b" %]<<<" => "0<<<" ok 2316 - Line 647 "[% "c" cmp "b" %]<<<" => "1<<<" ### math operators ################################## engine_option (stream) ok 2317 - Line 652 "[% 1 + 2 %]" => "3" ok 2318 - Line 653 "[% 1 + 2 + 3 %]" => "6" ok 2319 - Line 654 "[% (1 + 2) %]" => "3" ok 2320 - Line 655 "[% 2 - 1 %]" => "1" ok 2321 - Line 656 "[% -1 + 2 %]" => "1" ok 2322 - Line 657 "[% -1+2 %]" => "1" ok 2323 - Line 658 "[% 2 - 1 %]" => "1" ok 2324 - Line 659 "[% 2-1 %]" => "1" ok 2325 - Line 660 "[% 2 - -1 %]" => "3" ok 2326 - Line 661 "[% 4 * 2 %]" => "8" ok 2327 - Line 662 "[% 4 / 2 %]" => "2" ok 2328 - Line 663 "[% 10 / 3 %]" => "3.33333333333333" ok 2329 - Line 664 "[% 10 div 3 %]" => "3" ok 2330 - Line 665 "[% 2 ** 3 %]" => "8" ok 2331 - Line 666 "[% 1 + 2 * 3 %]" => "7" ok 2332 - Line 667 "[% 3 * 2 + 1 %]" => "7" ok 2333 - Line 668 "[% (1 + 2) * 3 %]" => "9" ok 2334 - Line 669 "[% 3 * (1 + 2) %]" => "9" ok 2335 - Line 670 "[% 1 + 2 ** 3 %]" => "9" ok 2336 - Line 671 "[% 2 * 2 ** 3 %]" => "16" ok 2337 - Line 672 "[% SET foo = 1 %][% foo + 2 %]" => "3" ok 2338 - Line 673 "[% SET foo = 1 %][% (foo + 2) %]" => "3" ok 2339 - Line 675 "[% a = 1; (a += 2) %]" => "3" ok 2340 - Line 676 "[% a = 1; (a -= 2) %]" => "-1" ok 2341 - Line 677 "[% a = 4; (a /= 2) %]" => "2" ok 2342 - Line 678 "[% a = 1; (a *= 2) %]" => "2" ok 2343 - Line 679 "[% a = 3; (a **= 2) %]" => "9" ok 2344 - Line 680 "[% a = 1; (a %= 2) %]" => "1" ok 2345 - Line 681 "[% a = 1; (a += 2 + 3) %]" => "6" ok 2346 - Line 682 "[% a = 1; b = 2; (a += b += 3) %]|[% a %]|[% b %]" => "6|6|5" ok 2347 - Line 683 "[% a = 1; b = 2; (a += (b += 3)) %]|[% a %]|[% b %]" => "6|6|5" ok 2348 - Line 685 "[% a += 1 %]-[% a %]-[% a += 1 %]-[% a %]" => "-1--2" ok 2349 - Line 686 "[% (a += 1) %]-[% (a += 1) %]" => "1-2" ok 2350 - Line 688 "[% a = 2; a -= 3; a %]" => "-1" ok 2351 - Line 689 "[% a = 2; a *= 3; a %]" => "6" ok 2352 - Line 690 "[% a = 2; a /= .5; a %]" => "4" ok 2353 - Line 691 "[% a = 8; a %= 3; a %]" => "2" ok 2354 - Line 692 "[% a = 2; a **= 3; a %]" => "8" ok 2355 - Line 694 "[% a = 1 %][% ++a %][% a %]" => "22" ok 2356 - Line 695 "[% a = 1 %][% a++ %][% a %]" => "12" ok 2357 - Line 696 "[% a = 1 %][% --a %][% a %]" => "00" ok 2358 - Line 697 "[% a = 1 %][% a-- %][% a %]" => "10" ok 2359 - Line 698 "[% a++ FOR [1..3] %]" => "012" ok 2360 - Line 699 "[% --a FOR [1..3] %]" => "-1-2-3" ok 2361 - Line 701 "[% 2 > 3 %]<<<" => "<<<" ok 2362 - Line 702 "[% 2 > 1 %]<<<" => "1<<<" ok 2363 - Line 703 "[% 2 >= 3 %]<<<" => "<<<" ok 2364 - Line 704 "[% 2 >= 2 %]<<<" => "1<<<" ok 2365 - Line 705 "[% 2 < 3 %]<<<" => "1<<<" ok 2366 - Line 706 "[% 2 < 1 %]<<<" => "<<<" ok 2367 - Line 707 "[% 2 <= 1 %]<<<" => "<<<" ok 2368 - Line 708 "[% 2 <= 2 %]<<<" => "1<<<" ok 2369 - Line 709 "[% 1 <=> 2 %]<<<" => "-1<<<" ok 2370 - Line 710 "[% 2 <=> 2 %]<<<" => "0<<<" ok 2371 - Line 711 "[% 3 <=> 2 %]<<<" => "1<<<" ### boolean operators ############################### engine_option (stream) ok 2372 - Line 716 "[% 5 && 6 %]" => "6" ok 2373 - Line 717 "[% 5 || 6 %]" => "5" ok 2374 - Line 718 "[% 0 || 6 %]" => "6" ok 2375 - Line 719 "[% 0 && 6 %]" => "0" ok 2376 - Line 720 "[% 0 && 0 %]" => "0" ok 2377 - Line 721 "[% 5 && 6 && 7%]" => "7" ok 2378 - Line 722 "[% 0 || 1 || 2 %]" => "1" ok 2379 - Line 724 "[% 5 + (0 || 5) %]" => "10" ok 2380 - Line 727 "[% 1 ? 2 : 3 %]" => "2" ok 2381 - Line 728 "[% 0 ? 2 : 3 %]" => "3" ok 2382 - Line 729 "[% 0 ? (1 ? 2 : 3) : 4 %]" => "4" ok 2383 - Line 730 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 2384 - Line 732 "[% t = 1 || 0 ? 3 : 4 %][% t %]" => "3" ok 2385 - Line 733 "[% t = 0 or 1 ? 3 : 4 %][% t %]" => "3" ok 2386 - Line 734 "[% t = 1 or 0 ? 3 : 4 %][% t %]" => "1" ok 2387 - Line 736 "[% 0 ? 2 : 3 %]" => "3" ok 2388 - Line 737 "[% 1 ? 2 : 3 %]" => "2" ok 2389 - Line 738 "[% 0 ? 1 ? 2 : 3 : 4 %]" => "4" ok 2390 - Line 739 "[% t = 0 ? 1 ? [1..4] : [2..4] : [3..4] %][% t.0 %]" => "3" ok 2391 - Line 740 "[% t = 1 || 0 ? 0 : 1 || 2 ? 2 : 3 %][% t %]" => "0" ok 2392 - Line 741 "[% t = 0 or 0 ? 0 : 1 or 2 ? 2 : 3 %][% t %]" => "1" ok 2393 - Line 742 "[% t = 0 or 0 ? 0 : 0 or 2 ? 2 : 3 %][% t %]" => "2" ok 2394 - Line 744 "[% 0 ? 1 ? 1 + 2 * 3 : 1 + 2 * 4 : 1 + 2 * 5 %]" => "11" ok 2395 - Line 746 "[% foo //= 2 ; foo %]" => "2" ok 2396 - Line 747 "[% foo = 3; foo //= 2; foo %]" => "3" ok 2397 - Line 748 "[% foo = 3; SET foo; foo //= 2; foo %]" => "2" ok 2398 - Line 750 "[% 5 // 6 %]" => "5" ok 2399 - Line 751 "[% foo // 6 %]" => "6" ok 2400 - Line 752 "[% foo // 6 %]" => "6" ok 2401 - Line 753 "[% foo // 6 %]" => "" ok 2402 - Line 754 "[% foo // 6 %]" => "bar" ok 2403 - Line 756 "[% foo err 6 %]" => "6" ok 2404 - Line 757 "[% foo ERR 6 %]" => "6" ### regex ########################################### engine_option (stream) ok 2405 - Line 762 "[% /foo/ %]" => "(?-xism:foo)" ok 2406 - Line 763 "[% /foo %]" => "" ok 2407 - Line 764 "[% /foo/x %]" => "(?-xism:(?x:foo))" ok 2408 - Line 765 "[% /foo/xi %]" => "(?-xism:(?xi:foo))" ok 2409 - Line 766 "[% /foo/xis %]" => "(?-xism:(?xis:foo))" ok 2410 - Line 767 "[% /foo/xism %]" => "(?-xism:(?xism:foo))" ok 2411 - Line 768 "[% /foo/e %]" => "" ok 2412 - Line 769 "[% /foo/g %]" => "" ok 2413 - Line 770 "[% /foo %]" => "" ok 2414 - Line 771 "[% /foo**/ %]" => "" ok 2415 - Line 772 "[% /fo\/o/ %]" => "(?-xism:fo/o)" ok 2416 - Line 773 "[% 'foobar'.match(/(f\w\w)/).0 %]" => "foo" ### BLOCK / PROCESS / INCLUDE######################## engine_option (stream) ok 2417 - Line 778 "[% PROCESS foo %]one" => "" ok 2418 - Line 779 "[% BLOCK foo %]one" => "" ok 2419 - Line 780 "[% BLOCK foo %][% END %]one" => "one" ok 2420 - Line 781 "[% BLOCK %][% END %]one" => "one" ok 2421 - Line 782 "[% BLOCK foo %]hi there[% END %]one" => "one" ok 2422 - Line 783 "[% BLOCK foo %][% BLOCK foo %][% END %][% END %]" => "" ok 2423 - Line 784 "[% BLOCK foo %]hi there[% END %][% PROCESS foo %]" => "hi there" ok 2424 - Line 785 "[% PROCESS foo %][% BLOCK foo %]hi there[% END %]" => "hi there" ok 2425 - Line 786 "[% BLOCK foo %]hi there[% END %][% PROCESS foo foo %]" => "hi therehi there" ok 2426 - Line 787 "[% BLOCK foo %]hi there[% END %][% PROCESS foo, foo %]" => "hi therehi there" ok 2427 - Line 788 "[% BLOCK foo %]hi there[% END %][% PROCESS foo + foo %]" => "hi therehi there" ok 2428 - Line 789 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo %]" => "hi ONE there" ok 2429 - Line 790 "[% BLOCK foo %]hi [% IF 1 %]Yes[% END %] there[% END %]<<[% PROCESS foo %]>>" => "<>" ok 2430 - Line 791 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %]" => "hi two there" ok 2431 - Line 792 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo one.two = 'two' %]" => "hi two there" ok 2432 - Line 793 "[% BLOCK foo %]hi [% one.two %] there[% END %][% PROCESS foo + foo one.two = 'two' %]" => "hi two therehi two there" ok 2433 - Line 794 "[% BLOCK foo %][% BLOCK bar %]hi [% one %] there[% END %][% END %][% PROCESS foo/bar one => 'two' %]" => "hi two there" ok 2434 - Line 796 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% PROCESS $self.a self = 'blah' %]" => "Ta-Da" ok 2435 - Line 797 "[% BLOCK b %]Ta-Da[% END %][% self = {a => 'b'} %][% INCLUDE $self.a self = 'blah' %]" => "Ta-Da" ok 2436 - Line 799 "[% BLOCK foo %]hi [% one %] there[% END %][% PROCESS foo one = 'two' %][% one %]" => "hi two theretwo" ok 2437 - Line 800 "[% BLOCK foo %]hi [% one %] there[% END %][% INCLUDE foo one = 'two' %][% one %]" => "hi two there" ok 2438 - Line 803 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]d" => "FOOBAR" ok 2439 - Line 804 "[% BLOCK foo %]FOO[% IF ! a ; a = 1; PROCESS bar; END %][% END %][% BLOCK bar %]BAR[% PROCESS foo %][% END %][% PROCESS foo %]" => "FOOBARFOO" ### IF / UNLESS / ELSIF / ELSE ###################### engine_option (stream) ok 2440 - Line 809 "[% IF 1 %]Yes[% END %]" => "Yes" ok 2441 - Line 810 "[% IF 0 %]Yes[% END %]" => "" ok 2442 - Line 811 "[% IF 0 %]Yes[% ELSE %]No[% END %]" => "No" ok 2443 - Line 812 "[% IF 0 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 2444 - Line 813 "[% IF 0 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 2445 - Line 814 "[% IF 0 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ok 2446 - Line 816 "[% UNLESS 1 %]Yes[% END %]" => "" ok 2447 - Line 817 "[% UNLESS 0 %]Yes[% END %]" => "Yes" ok 2448 - Line 818 "[% UNLESS 0 %]Yes[% ELSE %]No[% END %]" => "Yes" ok 2449 - Line 819 "[% UNLESS 1 %]Yes[% ELSIF 1 %]No[% END %]" => "No" ok 2450 - Line 820 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% END %]" => "" ok 2451 - Line 821 "[% UNLESS 1 %]Yes[% ELSIF 0 %]No[% ELSE %]hmm[% END %]" => "hmm" ### comments ######################################## engine_option (stream) ok 2452 - Line 826 "[%\# one %]" => "" ok 2453 - Line 827 "[%\# # one %]" => "" ok 2454 - Line 828 "[%-\# # one %]" => "" ok 2455 - Line 829 "[% \# # one %]" => "ONE" ok 2456 - Line 830 "[%\# BLOCK one %]" => "" ok 2457 - Line 831 "[%\# BLOCK one %]two" => "two" ok 2458 - Line 832 "[%\# BLOCK one %]two[% END %]" => "" ok 2459 - Line 833 "[%\# BLOCK one %]two[% END %]three" => "" ok 2460 - Line 834 "[% # \# # -%] # foo" => "foo" ### FOREACH / NEXT / LAST ########################### engine_option (stream) ok 2461 - Line 842 "[% FOREACH foo %]" => "" ok 2462 - Line 843 "[% FOREACH foo %][% END %]" => "" ok 2463 - Line 844 "[% FOREACH foo %]bar[% END %]" => "" ok 2464 - Line 845 "[% FOREACH foo %]bar[% END %]" => "bar" ok 2465 - Line 846 "[% FOREACH f IN foo %]bar[% f %][% END %]" => "bar1bar2" ok 2466 - Line 847 "[% FOREACH f = foo %]bar[% f %][% END %]" => "bar1bar2" ok 2467 - Line 848 "[% FOREACH f = [1,2] %]bar[% f %][% END %]" => "bar1bar2" ok 2468 - Line 849 "[% FOREACH f = [1..3] %]bar[% f %][% END %]" => "bar1bar2bar3" ok 2469 - Line 850 "[% FOREACH f = [{a=>'A'},{a=>'B'}] %]bar[% f.a %][% END %]" => "barAbarB" ok 2470 - Line 851 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %]" => "barAbarB" ok 2471 - Line 852 "[% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB" ok 2472 - Line 853 "[% FOREACH f = [1..3] %][% loop.count %]/[% loop.size %] [% END %]" => "1/3 2/3 3/3 " ok 2473 - Line 854 "[% FOREACH f = [1..3] %][% IF loop.first %][% f %][% END %][% END %]" => "1" ok 2474 - Line 855 "[% FOREACH f = [1..3] %][% IF loop.last %][% f %][% END %][% END %]" => "3" ok 2475 - Line 856 "[% FOREACH f = [1..3] %][% IF loop.first %][% NEXT %][% END %][% f %][% END %]" => "23" ok 2476 - Line 857 "[% FOREACH f = [1..3] %][% IF loop.first %][% LAST %][% END %][% f %][% END %]" => "" ok 2477 - Line 858 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% NEXT %][% END %][% END %]" => "123" ok 2478 - Line 859 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% LAST %][% END %][% END %]" => "1" ok 2479 - Line 861 "[% a = ["Red", "Blue"] ; FOR [0..3] ; a.${ loop.index % a.size } ; END %]" => "RedBlueRedBlue" ok 2480 - Line 866 "[% foo = 1 %][% FOREACH [1..10] %][% foo %][% foo = 2 %][% END %]" => "1222222222" ok 2481 - Line 867 "[% f = 1 %][% FOREACH i = [1..10] %][% i %][% f = 2 %][% END %][% f %]" => "123456789102" ok 2482 - Line 868 "[% f = 1 %][% FOREACH [1..10] %][% f = 2 %][% END %][% f %]" => "1" ok 2483 - Line 869 "[% f = 1 %][% FOREACH f = [1..10] %][% f %][% END %][% f %]" => "1234567891010" ok 2484 - Line 870 "[% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 2485 - Line 871 "[% a %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "" ok 2486 - Line 872 "[% a = 2 %][% FOREACH [1] %][% SET a = 1 %][% END %][% a %]" => "2" ok 2487 - Line 873 "[% a = 2 %][% FOREACH [1] %][% a = 1 %][% END %][% a %]" => "2" ok 2488 - Line 874 "[% a = 2 %][% FOREACH i = [1] %][% a = 1 %][% END %][% a %]" => "1" ok 2489 - Line 875 "[% FOREACH i = [1] %][% SET a = 1 %][% END %][% a %]" => "1" ok 2490 - Line 876 "[% f.b = 1 %][% FOREACH f.b = [1..10] %][% f.b %][% END %][% f.b %]" => "1234567891010" ok 2491 - Line 877 "[% a = 1 %][% FOREACH [{a=>'A'},{a=>'B'}] %]bar[% a %][% END %][% a %]" => "barAbarB1" ok 2492 - Line 878 "[% FOREACH [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 2493 - Line 879 "[% FOREACH i = [1..3] %][% loop.size %][% END %][% loop.size %]" => "333" ok 2494 - Line 882 "[% FOREACH f = [1..3]; 1; END %]" => "111" ok 2495 - Line 883 "[% FOREACH f = [1..3]; f; END %]" => "123" ok 2496 - Line 884 "[% FOREACH f = [1..3]; "$f"; END %]" => "123" ok 2497 - Line 885 "[% FOREACH f = [1..3]; f + 1; END %]" => "234" ### LOOP ############################################ engine_option (stream) ok 2498 - Line 890 "[% var = [{key => 'a'}, {key => 'b'}] -%] # [% LOOP var -%] # ([% key %]) # [% END %]" => " (a) # (b) # " ok 2499 - Line 900 "[% 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 ########################################### engine_option (stream) ok 2500 - Line 912 "[% WHILE foo %]" => "" ok 2501 - Line 913 "[% WHILE foo %][% END %]" => "" ok 2502 - Line 914 "[% WHILE (foo = foo - 1) %][% END %]" => "" ok 2503 - Line 915 "[% WHILE (foo = foo - 1) %][% foo %][% END %]" => "21" ok 2504 - Line 916 "[% WHILE foo %][% foo %][% foo = foo - 1 %][% END %]" => "321" ok 2505 - Line 918 "[% WHILE 1 %][% foo %][% foo = foo - 1 %][% LAST IF foo == 1 %][% END %]" => "32" ok 2506 - Line 919 "[% f = 10; WHILE f; f = f - 1 ; f ; END %]" => "9876543210" ok 2507 - Line 920 "[% f = 10; WHILE f; f = f - 1 ; f ; END ; f %]" => "98765432100" ok 2508 - Line 921 "[% f = 10; a = 2; WHILE f; f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 2509 - Line 923 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END %]" => "9876543210" ok 2510 - Line 924 "[% f = 10; WHILE (g=f); f = f - 1 ; f ; END ; f %]" => "98765432100" ok 2511 - Line 925 "[% f = 10; a = 2; WHILE (g=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432103" ok 2512 - Line 926 "[% f = 10; a = 2; WHILE (a=f); f = f - 1 ; f ; a=3; END ; a%]" => "98765432100" ### STOP / RETURN / CLEAR ########################### engine_option (stream) ok 2513 - Line 931 "[% STOP %]" => "" ok 2514 - Line 932 "One[% STOP %]Two" => "One" ok 2515 - Line 933 "[% BLOCK foo %]One[% STOP %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOne" ok 2516 - Line 934 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% STOP %][% END %][% END %]" => "1" ok 2517 - Line 935 "[% FOREACH f = [1..3] %][% IF loop.first %][% STOP %][% END %][% f %][% END %]" => "" ok 2518 - Line 937 "[% RETURN %]" => "" ok 2519 - Line 938 "One[% RETURN %]Two" => "One" ok 2520 - Line 939 "[% BLOCK foo %]One[% RETURN %]Two[% END %]First[% PROCESS foo %]Last" => "FirstOneLast" ok 2521 - Line 940 "[% FOREACH f = [1..3] %][% f %][% IF loop.first %][% RETURN %][% END %][% END %]" => "1" ok 2522 - Line 941 "[% FOREACH f = [1..3] %][% IF loop.first %][% RETURN %][% END %][% f %][% END %]" => "" ok 2523 - Line 943 "[% CLEAR %]" => "" ### post opererative directives ##################### engine_option (stream) ok 2524 - Line 954 "[% GET foo IF 1 %]" => "1" ok 2525 - Line 955 "[% f FOREACH f = [1..3] %]" => "123" ok 2526 - Line 957 "2[% GET foo IF 1 IF 2 %]" => "21" ok 2527 - Line 958 "2[% GET foo IF 1 IF 0 %]" => "2" ok 2528 - Line 959 "[% f FOREACH f = [1..3] IF 1 %]" => "123" ok 2529 - Line 960 "[% f FOREACH f = [1..3] IF 0 %]" => "" ok 2530 - Line 961 "[% f FOREACH f = g FOREACH g = [1..3] %]" => "123" ok 2531 - Line 962 "[% f FOREACH f = g.a FOREACH g = [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 2532 - Line 963 "[% f FOREACH f = a FOREACH [{a=>1}, {a=>2}, {a=>3}] %]" => "123" ok 2533 - Line 965 "[% FOREACH f = [1..3] IF 1 %]([% f %])[% END %]" => "(1)(2)(3)" ok 2534 - Line 966 "[% FOREACH f = [1..3] IF 0 %]([% f %])[% END %]" => "" ok 2535 - Line 968 "[% BLOCK bar %][% foo %][% foo = foo - 1 %][% END %][% PROCESS bar WHILE foo %]" => "321" ### capturing ####################################### engine_option (stream) ok 2536 - Line 973 "[% foo = BLOCK %]Hi[% END %][% foo %][% foo %]" => "HiHi" ok 2537 - Line 974 "[% BLOCK foo %]Hi[% END %][% bar = PROCESS foo %]-[% bar %]" => "-Hi" ok 2538 - Line 975 "[% foo = IF 1 %]Hi[% END %][% foo %]" => "Hi" ok 2539 - Line 976 "[% BLOCK foo %]([% i %])[% END %][% wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ok 2540 - Line 977 "[% BLOCK foo %]([% i %])[% END %][% SET wow = PROCESS foo i='bar' %][% wow %]" => "(bar)" ### TAGS ############################################ engine_option (stream) ok 2541 - Line 982 "[% TAGS asp %]<% 1 + 2 %>" => "3" ok 2542 - Line 983 "[% TAGS default %][% 1 + 2 %]" => "3" ok 2543 - Line 984 "[% TAGS html %]" => "3" ok 2544 - Line 985 "[% TAGS mason %]<% 1 + 2 >" => "3" ok 2545 - Line 986 "[% TAGS metatext %]%% 1 + 2 %%" => "3" ok 2546 - Line 987 "[% TAGS php %]" => "3" ok 2547 - Line 988 "[% TAGS star %][* 1 + 2 *]" => "3" ok 2548 - Line 989 "[% TAGS template %][% 1 + 2 %]" => "3" ok 2549 - Line 990 "[% TAGS template1 %][% 1 + 2 %]" => "3" ok 2550 - Line 991 "[% TAGS template1 %]%% 1 + 2 %%" => "3" ok 2551 - Line 992 "[% TAGS tt2 %][% 1 + 2 %]" => "3" ok 2552 - Line 994 "[% TAGS html %] " => "3" ok 2553 - Line 995 "[% TAGS html %]" => "3" ok 2554 - Line 996 "[% TAGS html %] # " => "3" ok 2555 - Line 997 "[% BLOCK foo %][% TAGS html %] " => "3 3" ok 2556 - Line 998 "[% BLOCK foo %][% TAGS html %][% END %][% PROCESS foo %] [% 1 + 2 %]" => "" ok 2557 - Line 1000 "[% TAGS %]" => "3" ok 2558 - Line 1002 "[% TAGS [<] [>] %][<] 1 + 2 [>]" => "3" ok 2559 - Line 1003 "[% TAGS '[<]' '[>]' %][<] 1 + 2 [>]" => "3" ok 2560 - Line 1004 "[% TAGS /[<]/ /[>]/ %]< 1 + 2 >" => "3" ok 2561 - Line 1005 "[% TAGS ** ** %]** 1 + 2 **" => "3" ok 2562 - Line 1006 "[% TAGS '**' '**' %]** 1 + 2 **" => "3" ok 2563 - Line 1007 "[% TAGS /**/ /**/ %]** 1 + 2 **" => "" ok 2564 - Line 1009 "[% TAGS html -->" => "3" ok 2565 - Line 1010 "[% TAGS html ; 7 -->" => "73" ok 2566 - Line 1011 "[% TAGS html ; 7 %]" => "" ### SWITCH / CASE ################################### engine_option (stream) ok 2567 - Line 1016 "[% SWITCH 1 %][% END %]hi" => "hi" ok 2568 - Line 1017 "[% SWITCH 1 %][% CASE %]bar[% END %]hi" => "barhi" ok 2569 - Line 1018 "[% SWITCH 1 %]Pre[% CASE %]bar[% END %]hi" => "barhi" ok 2570 - Line 1019 "[% SWITCH 1 %][% CASE DEFAULT %]bar[% END %]hi" => "barhi" ok 2571 - Line 1020 "[% SWITCH 1 %][% CASE 0 %]bar[% END %]hi" => "hi" ok 2572 - Line 1021 "[% SWITCH 1 %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 2573 - Line 1022 "[% SWITCH 1 %][% CASE foo %][% CASE 1 %]bar[% END %]hi" => "barhi" ok 2574 - Line 1023 "[% SWITCH 1 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ok 2575 - Line 1024 "[% SWITCH 11 %][% CASE [1..10] %]bar[% END %]hi" => "hi" ok 2576 - Line 1026 "[% SWITCH 1.0 %][% CASE [1..10] %]bar[% END %]hi" => "barhi" ### TRY / THROW / CATCH / FINAL ##################### engine_option (stream) ok 2577 - Line 1031 "[% TRY %][% END %]hi" => "hi" ok 2578 - Line 1032 "[% TRY %]Foo[% END %]hi" => "Foohi" ok 2579 - Line 1033 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% END %]hi" => "Foo" ok 2580 - Line 1034 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %][% END %]hi" => "Foohi" ok 2581 - Line 1035 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH %]there[% END %]hi" => "Footherehi" ok 2582 - Line 1036 "[% TRY %]Foo[% THROW foo 'for fun' %]bar[% CATCH foo %]there[% END %]hi" => "Footherehi" ok 2583 - Line 1037 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH %]two[% END %]hi" => "FooFootwohi" ok 2584 - Line 1038 "[% TRY %]Foo[% TRY %]Foo[% THROW foo 'for fun' %][% CATCH bar %]one[% END %][% CATCH s %]two[% END %]hi" => "FooFoo" ok 2585 - Line 1039 "[% TRY %]Foo[% THROW foo.bar 'for fun' %][% CATCH foo %]one[% CATCH foo.bar %]two[% END %]hi" => "Footwohi" ok 2586 - Line 1041 "[% TRY %]Foo[% FINAL %]Bar[% END %]hi" => "FooBarhi" ok 2587 - Line 1042 "[% TRY %]Foo[% THROW foo %][% FINAL %]Bar[% CATCH %]one[% END %]hi" => "" ok 2588 - Line 1043 "[% TRY %]Foo[% THROW foo %][% CATCH %]one[% FINAL %]Bar[% END %]hi" => "FoooneBarhi" ok 2589 - Line 1044 "[% TRY %]Foo[% THROW foo %][% CATCH bar %]one[% FINAL %]Bar[% END %]hi" => "Foo" ok 2590 - Line 1046 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error %][% END %]" => "foo error - bar" ok 2591 - Line 1047 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.type %][% END %]" => "foo" ok 2592 - Line 1048 "[% TRY %][% THROW foo 'bar' %][% CATCH %][% error.info %][% END %]" => "bar" ok 2593 - Line 1049 "[% TRY %][% THROW foo %][% CATCH %][% error.type %][% END %]" => "undef" ok 2594 - Line 1050 "[% TRY %][% THROW foo %][% CATCH %][% error.info %][% END %]" => "foo" ### named args ###################################### engine_option (stream) ok 2595 - Line 1056 "[% foo(bar = 'one', baz = 'two') %]" => "baronebaztwo" ok 2596 - Line 1058 "[%bar='ONE'%][% foo($bar = 'one') %]" => "ONEone" ### USE ############################################# engine_option (stream) ok 2597 - Line 1064 "[% USE son_of_gun_that_does_not_exist %]one" => "" ok 2598 - Line 1065 "[% USE Foo %]one" => "one" ok 2599 - Line 1066 "[% USE Foo2 %]one" => "one" ok 2600 - Line 1067 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 2601 - Line 1068 "[% USE Foo2(bar = 'baz') %]one[% Foo2.bar %]" => "onebarbaz" ok 2602 - Line 1069 "[% USE Foo(bar = 'baz') %]one[% Foo.bar %]" => "onebarbaz" ok 2603 - Line 1070 "[% USE d = Foo(bar = 'baz') %]one[% d.bar %]" => "onebarbaz" ok 2604 - Line 1071 "[% USE d.d = Foo(bar = 'baz') %]one[% d.d.bar %]" => "" ok 2605 - Line 1073 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "" ok 2606 - Line 1074 "[% USE a(bar = 'baz') %]one[% a.seven %]" => "one7" ok 2607 - Line 1077 "[% USE Foo %]one" => "one" ### MACRO ########################################### engine_option (stream) ok 2608 - Line 1082 "[% MACRO foo PROCESS bar %][% BLOCK bar %]Hi[% END %][% foo %]" => "Hi" ok 2609 - Line 1083 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 2610 - Line 1084 "[% MACRO foo BLOCK %]Hi[% END %][% foo %]" => "Hi" ok 2611 - Line 1085 "[% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %]" => "Hi2" ok 2612 - Line 1086 "[%n=1%][% MACRO foo(n) BLOCK %]Hi[% n %][% END %][% foo(2) %][%n%]" => "Hi21" ok 2613 - Line 1087 "[%n=1%][% MACRO foo BLOCK %]Hi[% n = 2%][% END %][% foo %][%n%]" => "Hi1" ok 2614 - Line 1088 "[% MACRO foo(n) FOREACH i=[1..n] %][% i %][% END %][% foo(3) %]" => "123" ok 2615 - Line 1090 "[% MACRO f BLOCK %]>[% TRY; f ; CATCH ; "caught" ; END %][% END %][% f %]" => ">>>caught" ### DEBUG ########################################### engine_option (stream) ok 2616 - Line 1095 " # [% one %]" => " # # \#\# input text line 3 : [% one %] \#\# # ONE" ok 2617 - Line 1096 "[% one %]" => " # \#\# input text line 1 : [% one %] \#\# # ONE" ok 2618 - Line 1097 "[% one %] # " => "(1)ONE # " ok 2619 - Line 1098 "1 # 2 # 3[% one %]" => "1 # 2 # 3(3)ONE" ok 2620 - Line 1099 "[% one; # one %]" => "(1)ONE(2)ONE" ok 2621 - Line 1101 "[% DEBUG format '($line)' %][% one %]" => " # \#\# input text line 1 : [% DEBUG format '($line)' %] \#\# # (1)ONE" ok 2622 - Line 1103 "[% TRY %][% abc %][% CATCH %][% error %][% END %]" => "undef error - abc is undefined # " ok 2623 - Line 1104 "[% TRY %][% abc.def %][% CATCH %][% error %][% END %]" => "undef error - def is undefined # " ### constants ####################################### engine_option (stream) ok 2624 - Line 1123 "[% constants.harry %]" => "do_this_once" ok 2625 - Line 1124 "[% constants.harry.length %]" => "12" ok 2626 - Line 1125 "[% SET constants.something = 1 %][% constants.something %]one" => "1one" ok 2627 - Line 1126 "[% SET constants.harry = 1 %][% constants.harry %]one" => "do_this_onceone" ok 2628 - Line 1127 "[% constants.foo.${constants.bang} %]" => "57" ok 2629 - Line 1128 "[% constants.foo.$bam.${constants.bing} %]" => "42" ok 2630 - Line 1129 "[% bam = 'somethingelse' %][% constants.foo.$bam.${constants.bing} %]" => "42" ok 2631 - Line 1131 "[% constants.${"harry"} %]" => "do_this_once" ok 2632 - Line 1132 "[% ${"constants"}.harry %]" => "foo" ok 2633 - Line 1134 "[% ${"con${"s"}tants"}.harry %]" => "foo" ### INTERPOLATE ##################################### engine_option (stream) ok 2634 - Line 1139 "Foo $one Bar" => "Foo ONE Bar" ok 2635 - Line 1140 "[% PERL %] my $n=7; print $n [% END %]" => "7" ok 2636 - Line 1141 "[% TRY ; PERL %] my $n=7; print $n [% END ; END %]" => "7" ok 2637 - Line 1145 "Foo \ Bar" => "Foo \ Bar" ok 2638 - Line 1146 "Foo \\ Bar" => "Foo \\ Bar" ok 2639 - Line 1147 "Foo \n Bar" => "Foo \n Bar" ok 2640 - Line 1148 "Foo \$a Bar" => "Foo $a Bar" ok 2641 - Line 1149 "Foo \\$a Bar" => "Foo \\7 Bar" ok 2642 - Line 1150 "Foo \\\$a Bar" => "Foo \\$a Bar" ok 2643 - Line 1151 "Foo $a.B Bar" => "Foo 7 Bar" ok 2644 - Line 1152 "Foo ${ a.B } Bar" => "Foo 7 Bar" ok 2645 - Line 1153 "Foo $a.b.c("hi") Bar" => "Foo Bar" ok 2646 - Line 1155 "Foo ${a.b.c("hi")} Bar" => "Foo Bar" ok 2647 - Line 1156 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 2648 - Line 1157 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 2649 - Line 1158 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 2650 - Line 1159 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 2651 - Line 1160 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 2652 - Line 1161 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### ANYCASE / TRIM ################################## engine_option (stream) ok 2653 - Line 1166 "[% GET %]" => "" ok 2654 - Line 1167 "[% GET GET %]" => "ONE" ok 2655 - Line 1168 "[% get one %]" => "ONE" ok 2656 - Line 1169 "[% get %]" => "" ok 2657 - Line 1170 "[% get get %]" => "ONE" ok 2658 - Line 1172 "[% BLOCK foo %] # hi # [% END %][% PROCESS foo %]" => " # hi # " ok 2659 - Line 1173 "[% BLOCK foo %] # hi[% END %][% PROCESS foo %]" => " # hi" ok 2660 - Line 1174 "[% BLOCK foo %]hi # [% END %][% PROCESS foo %]" => "hi # " ok 2661 - Line 1175 "[% BLOCK foo %]hi[% nl %][% END %][% PROCESS foo %]" => "hi # " ok 2662 - Line 1176 "[% BLOCK foo %][% nl %]hi[% END %][% PROCESS foo %]" => " # hi" ok 2663 - Line 1177 "A[% TRY %] # hi # [% END %]" => "A # hi # " ok 2664 - Line 1179 "[% FOO %]" => "foo" ### V1DOLLAR ######################################## engine_option (stream) ok 2665 - Line 1184 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 2666 - Line 1185 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 2667 - Line 1188 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb||CB|bar" ok 2668 - Line 1189 "[% a.b.c %]|[% $a.b.c %]|[% a.$b.c %]|[% ${ a.b.c } %]" => "Cb|Cb|Cb|bar" ok 2669 - Line 1191 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 2670 - Line 1192 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/$a/A/${a}" ok 2671 - Line 1193 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 2672 - Line 1194 "[% "$a" %]/$a/[% "${a}" %]/${a}" => "A/A/A/A" ok 2673 - Line 1196 "[% constants.a %]|[% $constants.a %]|[% constants.$a %]" => "A|A|A" ### V2PIPE / V2EQUALS ############################### engine_option (stream) ok 2674 - Line 1201 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237 # b is 237 # " ok 2675 - Line 1206 "[%- BLOCK a %]b is [% b %] # [% END %] # [%- PROCESS a b => 237 | repeat(2) %]" => "b is 237237 # " ok 2676 - Line 1210 "[% ('a' == 'b') || 0 %]" => "0" ok 2677 - Line 1211 "[% ('a' != 'b') || 0 %]" => "1" ok 2678 - Line 1212 "[% ('a' == 'b') || 0 %]" => "0" ok 2679 - Line 1213 "[% ('a' != 'b') || 0 %]" => "1" ok 2680 - Line 1214 "[% ('a' == 'b') || 0 %]" => "1" ok 2681 - Line 1215 "[% ('a' != 'b') || 0 %]" => "0" ok 2682 - Line 1216 "[% ('7' == '7.0') || 0 %]" => "0" ok 2683 - Line 1217 "[% ('7' == '7.0') || 0 %]" => "1" ok 2684 - Line 1218 "[% (7 == 7.0) || 0 %]" => "1" ok 2685 - Line 1219 "[% (7 == 7.0) || 0 %]" => "1" ### configuration ################################### engine_option (stream) ok 2686 - Line 1224 "[% a = 7 %]$a" => "7" ok 2687 - Line 1225 "[% a = 7 %]$a" => "7" ### PERL ############################################ engine_option (stream) ok 2688 - Line 1230 "[% TRY %][% PERL %][% END %][% CATCH ; error; END %]" => "perl error - EVAL_PERL not set" ok 2689 - Line 1231 "[% PERL %] print "[% one %]" [% END %]" => "ONE" ok 2690 - Line 1232 "[% PERL %] print $stash->get('one') [% END %]" => "ONE" ok 2691 - Line 1233 "[% PERL %] print $stash->set('a.b.c', 7) [% END %][% a.b.c %]" => "77" ok 2692 - Line 1234 "[% RAWPERL %]$output .= 'interesting'[% END %]" => "interesting" ### recursion prevention ############################ engine_option (stream) ok 2693 - Line 1239 "[% BLOCK foo %][% PROCESS bar %][% END %][% BLOCK bar %][% PROCESS foo %][% END %][% PROCESS foo %]" => "" ### META ############################################ engine_option (stream) ok 2694 - Line 1244 "[% template.name %]" => "input text" ok 2695 - Line 1245 "[% META foo = 'bar' %][% template.foo %]" => "bar" ok 2696 - Line 1246 "[% META name = 'bar' %][% template.name %]" => "bar" ok 2697 - Line 1247 "[% META foo = 'bar' %][% component.foo %]" => "bar" ok 2698 - Line 1248 "[% META foo = 'bar' %][% component = '' %][% component.foo %]|foo" => "|foo" ok 2699 - Line 1249 "[% META foo = 'bar' %][% template = '' %][% template.foo %]|foo" => "|foo" ### references ###################################### engine_option (stream) ok 2700 - Line 1254 "[% a=3; b=\a; b; a %]" => "33" ok 2701 - Line 1255 "[% a=3; b=\a; a=7; b; a %]" => "77" ok 2702 - Line 1257 "[% a={}; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 2703 - Line 1258 "[% a={}; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 2704 - Line 1260 "[% a=[]; a.1=7; b=\a.1; b; a.1 %]" => "77" ok 2705 - Line 1261 "[% a=[]; a.1=7; b=\a.20; a.20=7; b; a.20 %]" => "77" ok 2706 - Line 1263 "[% \a %]" => "CODE(0x22798f4)" ok 2707 - Line 1264 "[% b=\a; b %]" => "a sub []" ok 2708 - Line 1265 "[% b=\a(1); b %]" => "a sub [1]" ok 2709 - Line 1266 "[% b=\a; b(2) %]" => "a sub [2]" ok 2710 - Line 1267 "[% b=\a(1); b(2) %]" => "a sub [1 2]" ok 2711 - Line 1268 "[% f=\j.k; j.k=7; f %]" => "7" ok 2712 - Line 1270 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; foo %]" => "A" ok 2713 - Line 1271 "[% a = "a" ; f = {a=>"A",b=>"B"} ; foo = \f.$a ; a = "b" ; foo %]" => "A" ok 2714 - Line 1272 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; a = "cd"; foo %]" => "-AB-cd" ok 2715 - Line 1273 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; a = "cd"; foo %]" => "*cd" ok 2716 - Line 1275 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-") ; f = "ab"; foo %]" => "-AB-cd" ok 2717 - Line 1276 "[% a = "ab" ; f = "abcd"; foo = \f.replace(a, "-AB-").replace("-AB-", "*") ; f = "ab"; foo %]" => "*cd" ### reserved words ################################## engine_option (stream) ok 2718 - Line 1287 "[% GET %]" => "" ok 2719 - Line 1288 "[% GET GET %]" => "named_get" ok 2720 - Line 1289 "[% GET get %]" => "lower_named_get" ok 2721 - Line 1290 "[% GET ${'GET'} %]" => "bar" ok 2722 - Line 1292 "[% GET = 1 %][% GET GET %]" => "" ok 2723 - Line 1293 "[% SET GET = 1 %][% GET GET %]" => "1" ok 2724 - Line 1295 "[% GET $hold_get %]" => "named_get" ok 2725 - Line 1296 "[% GET $GET %]" => "value of named_get" ok 2726 - Line 1297 "[% BLOCK GET %]hi[% END %][% PROCESS GET %]" => "hi" ok 2727 - Line 1298 "[% BLOCK foo %]hi[% END %][% PROCESS foo a = GET %]" => "hi" ok 2728 - Line 1299 "[% BLOCK foo %]hi[% END %][% PROCESS foo GET = 1 %]" => "" ok 2729 - Line 1300 "[% BLOCK foo %]hi[% END %][% PROCESS foo IF GET %]" => "hi" ### embedded items ################################## engine_option (stream) ok 2730 - Line 1305 "[% " \" " %]" => " " " ok 2731 - Line 1306 "[% " \$foo " %]" => " $foo " ok 2732 - Line 1307 "[% " \${foo} " %]" => " ${foo} " ok 2733 - Line 1308 "[% " \n " %]" => " # " ok 2734 - Line 1309 "[% " \t " %]" => " " ok 2735 - Line 1310 "[% " \r " %]" => " " ok 2736 - Line 1312 "[% 'foo\'bar' %]" => "foo'bar" ok 2737 - Line 1313 "[% "foo\"bar" %]" => "foo"bar" ok 2738 - Line 1314 "[% qw(foo \)).1 %]" => ")" ok 2739 - Line 1315 "[% qw|foo \||.1 %]" => "|" ok 2740 - Line 1317 "[% ' \' ' %]" => " ' " ok 2741 - Line 1318 "[% ' \r ' %]" => " \r " ok 2742 - Line 1319 "[% ' \n ' %]" => " \n " ok 2743 - Line 1320 "[% ' \t ' %]" => " \t " ok 2744 - Line 1321 "[% ' $foo ' %]" => " $foo " ok 2745 - Line 1323 "[% A = "bar" ; ${ "A" } %]" => "bar" ok 2746 - Line 1324 "[% A = "bar" ; "(${ A })" %]" => "(bar)" ok 2747 - Line 1325 "[% A = "bar" ; ${ {a => "A"}.a } %]" => "bar" ok 2748 - Line 1326 "[% A = "bar" ; "(${ {a => "A"}.a })" %]" => "(A)" ok 2749 - Line 1327 "[% A = "bar" ; "(${ ${ {a => "A"}.a } })" %]" => "(bar)" ok 2750 - Line 1328 "[% A = "bar" %](${ {a => "A"}.a })" => "(A)" ok 2751 - Line 1329 "[% A = "bar" %](${ ${ {a => "A"}.a } })" => "(bar)" ok 2752 - Line 1331 "[% "[%" %]" => "[%" ok 2753 - Line 1332 "[% "%]" %]" => "%]" ok 2754 - Line 1333 "[% a = "[% %]" %][% a %]" => "[% %]" ok 2755 - Line 1334 "[% "[% 1 + 2 %]" | eval %]" => "3" ok 2756 - Line 1336 "[% qw([% 1 + 2 %]).join %]" => "[% 1 + 2 %]" ok 2757 - Line 1337 "[% qw([% 1 + 2 %]).join.eval %]" => "3" ok 2758 - Line 1339 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; f.eval %]" => ">>>>>caught" ok 2759 - Line 1340 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; f.eval;f.eval %]" => ">>foo>>foo" ok 2760 - Line 1341 "[% '\#set($foo = 12)'|eval(syntax => 'velocity') %]|[% foo %]" => "|12" ### EVALUATE ######################################## engine_option (stream) ok 2761 - Line 1346 "[% f = ">[% TRY; f.eval ; CATCH; 'caught' ; END %]"; EVALUATE f %]" => ">>>>>caught" ok 2762 - Line 1347 "[% f = ">[% TRY; f.eval ; CATCH; 'foo' ; END %]"; EVALUATE f; EVALUATE f %]" => ">>foo>>foo" ok 2763 - Line 1348 "[% EVALUATE '\#set($foo = 12)' syntax => 'velocity' %]|[% foo %]" => "|12" ### DUMP ############################################ engine_option (stream) ok 2764 - Line 1355 "[% DUMP a %]" => "DUMP: File "input text" line 1 # a = undef; # " ok 2765 - Line 1356 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = undef;" ok 2766 - Line 1357 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = 's';" ok 2767 - Line 1358 "[% # p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 2 a = 's';" ok 2768 - Line 1359 "[% p = DUMP a, b; p.collapse %]" => "DUMP: File "input text" line 1 a, b = [ 's', undef ];" ok 2769 - Line 1360 "[% p = DUMP a Useqq => 'b'; p.collapse %]" => "DUMP: File "input text" line 1 a Useqq => 'b' = [ 's', { 'Useqq' => 'b' } ];" ok 2770 - Line 1361 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = "s";" ok 2771 - Line 1362 "[% p = DUMP a; p.collapse %]|foo" => "|foo" ok 2772 - Line 1363 "[% p = DUMP _a, b; p.collapse %]" => "DUMP: File "input text" line 1 _a, b = [ undef, 'c' ];" ok 2773 - Line 1364 "[% p = DUMP {a => 'b'}; p.collapse %]" => "DUMP: File "input text" line 1 {a => 'b'} = { 'a' => 'b' };" ok 2774 - Line 1365 "[% p = DUMP _a; p.collapse %]" => "DUMP: File "input text" line 1 _a = undef;" ok 2775 - Line 1366 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = { 'b' => 'c' };" ok 2776 - Line 1367 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 2777 - Line 1368 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 a = {};" ok 2778 - Line 1369 "[% p = DUMP a; p.collapse %]" => "DUMP: File "input text" line 1 Dump(7)" ok 2779 - Line 1370 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 2780 - Line 1371 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 2781 - Line 1373 "[% p = DUMP a; p.collapse %]" => "
a = 's'; 
" ok 2782 - Line 1374 "[% p = DUMP a; p.collapse %]" => "a = 's';" ok 2783 - Line 1376 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 2784 - Line 1377 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1 EntireStash = { 'a' => 'b', 'global' => undef };" ok 2785 - Line 1378 "[% SET global; p = DUMP; p.collapse %]" => "DUMP: File "input text" line 1" ### SYNTAX ########################################## engine_option (stream) ok 2786 - Line 1385 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "" ok 2787 - Line 1386 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 2788 - Line 1387 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 2789 - Line 1388 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237237" ok 2790 - Line 1389 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 2791 - Line 1390 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 2792 - Line 1391 "[%- BLOCK a %]b is [% b %][% END %][% PROCESS a b => 237 | repeat(2) %]" => "b is 237b is 237" ok 2793 - Line 1394 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 2794 - Line 1395 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|bar|bar|A" ok 2795 - Line 1396 "[% a %]|[% $a %]|[% ${ a } %]|[% ${ "a" } %]" => "A|A|bar|A" ok 2796 - Line 1398 "" => "FOO" ok 2797 - Line 1399 "" => "7 8" ok 2798 - Line 1400 "" => "1" ok 2799 - Line 1401 "" => "1" ok 2800 - Line 1402 "d" => "" ok 2801 - Line 1404 "[% ""|eval(syntax => 'hte') %] = [% 6 %]" => "6 = 6" ok 2802 - Line 1405 "[% ""|eval(syntax => 'ht') %] = [% 6 %]" => "" ok 2803 - Line 1406 "[% ""|eval(syntax => 'ht') %] = [% 12 %]" => "12 = 12" ### CONFIG ########################################## engine_option (stream) ok 2804 - Line 1414 "[% CONFIG ANYCASE => 1 %][% get 234 %]" => "234" ok 2805 - Line 1415 "[% CONFIG anycase => 1 %][% get 234 %]" => "234" ok 2806 - Line 1416 "[% CONFIG PRE_CHOMP => '-' %] # [% 234 %]" => "234" ok 2807 - Line 1417 "[% CONFIG POST_CHOMP => '-' %][% 234 %] # " => "234" ok 2808 - Line 1418 "[% CONFIG INTERPOLATE => 1 %]${ 234 }" => "234" ok 2809 - Line 1419 "[% CONFIG V1DOLLAR => 1 %][% a = 234 %][% $a %]" => "234" ok 2810 - Line 1420 "[% CONFIG V2PIPE => 1 %][% BLOCK a %]b is [% b %][% END %][% PROCESS a b => 234 | repeat(2) %]" => "b is 234b is 234" ok 2811 - Line 1421 "[% CONFIG V2EQUALS => 1 %][% ('7' == '7.0') || 0 %]" => "0" ok 2812 - Line 1422 "[% CONFIG V2EQUALS => 0 %][% ('7' == '7.0') || 0 %]" => "1" ok 2813 - Line 1424 "[% CONFIG BOGUS => 2 %]bar" => "" ok 2814 - Line 1426 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 2815 - Line 1427 "[% CONFIG ANYCASE %]|[% CONFIG ANYCASE => 1 %][% CONFIG ANYCASE %]" => "CONFIG ANYCASE = undef|CONFIG ANYCASE = 1" ok 2816 - Line 1429 "[% "[% GET 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 2817 - Line 1430 "[% CONFIG ANYCASE => 1 %][% get 6 %]" => "6" ok 2818 - Line 1431 "[% CONFIG ANYCASE => 1 %][% "[% get 1+2+3 %]" | eval %] = [% get 6 %]" => "6 = 6" ok 2819 - Line 1432 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% get 6 %]" => "" ok 2820 - Line 1433 "[% "[% CONFIG ANYCASE => 1 %][% get 1+2+3 %]" | eval %] = [% GET 6 %]" => "6 = 6" ok 2821 - Line 1434 "[% CONFIG SYNTAX => 'hte' %][% ""|eval %] = [% 6 %]" => "6 = 6" ok 2822 - Line 1435 "[% "[% get 1+2+3 %]" | eval(ANYCASE => 1) %] = [% GET 6 %]" => "6 = 6" ok 2823 - Line 1437 "[% CONFIG DUMP %]|[% CONFIG DUMP => 0 %][% DUMP %]bar" => "CONFIG DUMP = undef|bar" ok 2824 - Line 1438 "[% CONFIG DUMP => {Useqq=>1, header=>0, html=>0} %][% DUMP 'foo' %]" => "'foo' = "foo"; # " ok 2825 - Line 1439 "[% CONFIG VMETHOD_FUNCTIONS => 0 %][% sprintf('%d %d', 7, 8) %] d" => " d" ### DONE ############################################ engine_option (stream) ok t/10_tt_includes......1..306 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ok 3 - Got a nested test dir up and running ### INSERT ########################################## engine_option (normal) Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/TT.pm line 53. ok 4 - Line 173 "([% INSERT bar.tt %])" => "([% blue %]BAR)" ok 5 - Line 174 "([% SET file = 'bar.tt' %][% INSERT $file %])" => "([% blue %]BAR)" ok 6 - Line 175 "([% SET file = 'bar.tt' %][% INSERT ${file} %])" => "([% blue %]BAR)" ok 7 - Line 176 "([% SET file = 'bar.tt' %][% INSERT "$file" %])" => "([% blue %]BAR)" ok 8 - Line 177 "([% SET file = 'bar' %][% INSERT "${file}.tt" %])" => "([% blue %]BAR)" ### INCLUDE ######################################### engine_option (normal) ok 9 - Line 182 "([% INCLUDE bar.tt %])" => "(BAR)" ok 10 - Line 183 "[% PROCESS foo.tt %]" => "(BAR)" ok 11 - Line 184 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 12 - Line 185 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 13 - Line 186 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 14 - Line 187 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 15 - Line 188 "([% SET file = 'bar.tt' %][% INCLUDE $file %])" => "(BAR)" ok 16 - Line 189 "([% SET file = 'bar.tt' %][% INCLUDE ${file} %])" => "(BAR)" ok 17 - Line 190 "([% SET file = 'bar.tt' %][% INCLUDE "$file" %])" => "(BAR)" ok 18 - Line 191 "([% SET file = 'bar' %][% INCLUDE "${file}.tt" %])" => "(BAR)" ok 19 - Line 193 "([% INCLUDE baz.tt %])" => "(42)" ok 20 - Line 194 "([% INCLUDE baz.tt %])[% baz %]" => "(42)" ok 21 - Line 195 "[% SET baz = 21 %]([% INCLUDE baz.tt %])[% baz %]" => "(42)21" ### PROCESS ######################################### engine_option (normal) ok 22 - Line 200 "([% PROCESS bar.tt %])" => "(BAR)" ok 23 - Line 201 "[% PROCESS foo.tt %]" => "(BAR)" ok 24 - Line 202 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 25 - Line 203 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 26 - Line 204 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 27 - Line 205 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 28 - Line 206 "([% SET file = 'bar.tt' %][% PROCESS $file %])" => "(BAR)" ok 29 - Line 207 "([% SET file = 'bar.tt' %][% PROCESS ${file} %])" => "(BAR)" ok 30 - Line 208 "([% SET file = 'bar.tt' %][% PROCESS "$file" %])" => "(BAR)" ok 31 - Line 209 "([% SET file = 'bar' %][% PROCESS "${file}.tt" %])" => "(BAR)" ok 32 - Line 211 "([% PROCESS baz.tt %])" => "(42)" ok 33 - Line 212 "([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 34 - Line 213 "[% SET baz = 21 %]([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 35 - Line 215 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 36 - Line 216 "[% PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 37 - Line 217 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 38 - Line 219 "[% PROCESS nested/foo2.tt %]" => "" ok 39 - Line 220 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 40 - Line 221 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ### WRAPPER ######################################### engine_option (normal) ok 41 - Line 226 "([% WRAPPER wrap.tt %])" => "" ok 42 - Line 227 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)" ok 43 - Line 228 "([% WRAPPER wrap.tt %] ([% baz %]) [% END %])" => "(Hi () there)" ok 44 - Line 229 "([% WRAPPER wrap.tt %] one [% END %])" => "(HiBAZ one there)" ok 45 - Line 230 "([% WRAPPER wrap.tt %] ([% baz; baz='-local' %]) [% END %][% baz %])" => "(Hi-local () there-local)" ok 46 - Line 231 "([% WRAPPER wrap.tt %][% META foo='BLAM' %] [% END %])" => "(HiBLAM there)" ### CONFIG PRE_PROCESS ############################## engine_option (normal) ok 47 - Line 236 "Foo" => "BARFoo" ok 48 - Line 237 "Foo" => "BARFoo" ok 49 - Line 238 "Foo" => "(BAR)BARFoo" ok 50 - Line 239 "Foo" => "BlueBARFoo" ok 51 - Line 240 "Foo[% blue='Blue' %]" => "BARFoo" ok 52 - Line 241 "Foo[% META foo='meta' %]" => "(metaBAR)Foo" ok 53 - Line 242 "([% WRAPPER wrap.tt %] one [% END %])" => "BAR(Hi one there)" ok 54 - Line 244 "Foo" => "<>Foo" ### CONFIG POST_PROCESS ############################# engine_option (normal) ok 55 - Line 249 "Foo" => "FooBAR" ok 56 - Line 250 "Foo" => "FooBAR" ok 57 - Line 251 "Foo" => "Foo(BAR)BAR" ok 58 - Line 252 "Foo" => "FooBlueBAR" ok 59 - Line 253 "Foo[% blue='Blue' %]" => "FooBlueBAR" ok 60 - Line 254 "Foo[% META foo='meta' %]" => "Foo(metaBAR)" ok 61 - Line 255 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)BAR" ok 62 - Line 257 "Foo" => "Foo<>" ### CONFIG PROCESS ################################## engine_option (normal) ok 63 - Line 262 "Foo" => "BAR" ok 64 - Line 263 "Foo" => "BAR" ok 65 - Line 264 "Foo" => "(BAR)BAR" ok 66 - Line 265 "Foo" => "BlueBAR" ok 67 - Line 266 "Foo[% META foo='meta' %]" => "(metaBAR)" ok 68 - Line 267 "Foo[% META foo='meta' %]" => "BAR(metaBAR)" ok 69 - Line 268 "Foo[% META foo='meta' %]" => "(metaBAR)BAR" ok 70 - Line 270 "Foo" => "<>" ### CONFIG WRAPPER ################################## engine_option (normal) ok 71 - Line 275 " one " => "Hi one there" ok 72 - Line 276 " one " => "Hi one there" ok 73 - Line 277 " one " => "HiwrapHi one therethere" ok 74 - Line 278 " ([% baz %]) " => "Hi () there" ok 75 - Line 279 " one " => "HiBAZ one there" ok 76 - Line 280 " ([% baz; baz='-local' %]) " => "Hi-local () there" ok 77 - Line 281 "[% META foo='BLAM' %] " => "HiBLAM there" ok 78 - Line 283 " one " => "BARHi one there" ok 79 - Line 284 " one " => "HiBARthere" ok 80 - Line 285 " one " => "Hi one thereBAR" ok 81 - Line 287 "Foo" => "<>" ### CONFIG ERRORS ################################### engine_option (normal) ok 82 - Line 292 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 83 - Line 293 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 84 - Line 294 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 85 - Line 295 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 86 - Line 296 "[% THROW foo 'bar' %]" => "Error2 (foo) - (bar)" ok 87 - Line 297 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 88 - Line 298 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 89 - Line 299 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 90 - Line 300 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 91 - Line 302 "[% THROW foo 'bar' %]" => "BARError (foo) - (bar)" ok 92 - Line 303 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 93 - Line 304 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 94 - Line 306 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)BAR" ok 95 - Line 307 "[% THROW foo 'bar' %]" => "HiError (foo) - (bar)there" ok 96 - Line 309 "(outer)[% PROCESS 'die.tt' %]" => "Error (bing) - (blang)" ok 97 - Line 311 "(outer)[% TRY %][% PROCESS 'die.tt' %][% CATCH %] [% END %]" => "(outer) " ok 98 - Line 313 " one " => "" ok 99 - Line 314 " one " => "" ok 100 - Line 315 " one " => "" ### CONFIG and DUMP ################################# engine_option (normal) ok 101 - Line 320 "[% CONFIG DUMP => {html => 0}; DUMP foo; PROCESS config.tt; DUMP foo %]" => "DUMP: File "input text" line 1 # foo = 'FOO'; # DUMP: File "config.tt" line 1
foo = 'FOO';
# 
DUMP: File "input text" line 1 # foo = 'FOO'; # " ### NOT FOUND CACHE ################################# engine_option (normal) ok 102 - Line 330 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found (cached)) # " ok 103 - Line 331 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ok 104 - Line 332 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ### DONE ############################################ engine_option (normal) ### INSERT ########################################## engine_option (compile_perl) ok 105 - Line 173 "([% INSERT bar.tt %])" => "([% blue %]BAR)" ok 106 - Line 174 "([% SET file = 'bar.tt' %][% INSERT $file %])" => "([% blue %]BAR)" ok 107 - Line 175 "([% SET file = 'bar.tt' %][% INSERT ${file} %])" => "([% blue %]BAR)" ok 108 - Line 176 "([% SET file = 'bar.tt' %][% INSERT "$file" %])" => "([% blue %]BAR)" ok 109 - Line 177 "([% SET file = 'bar' %][% INSERT "${file}.tt" %])" => "([% blue %]BAR)" ### INCLUDE ######################################### engine_option (compile_perl) ok 110 - Line 182 "([% INCLUDE bar.tt %])" => "(BAR)" ok 111 - Line 183 "[% PROCESS foo.tt %]" => "(BAR)" ok 112 - Line 184 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 113 - Line 185 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 114 - Line 186 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 115 - Line 187 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 116 - Line 188 "([% SET file = 'bar.tt' %][% INCLUDE $file %])" => "(BAR)" ok 117 - Line 189 "([% SET file = 'bar.tt' %][% INCLUDE ${file} %])" => "(BAR)" ok 118 - Line 190 "([% SET file = 'bar.tt' %][% INCLUDE "$file" %])" => "(BAR)" ok 119 - Line 191 "([% SET file = 'bar' %][% INCLUDE "${file}.tt" %])" => "(BAR)" ok 120 - Line 193 "([% INCLUDE baz.tt %])" => "(42)" ok 121 - Line 194 "([% INCLUDE baz.tt %])[% baz %]" => "(42)" ok 122 - Line 195 "[% SET baz = 21 %]([% INCLUDE baz.tt %])[% baz %]" => "(42)21" ### PROCESS ######################################### engine_option (compile_perl) ok 123 - Line 200 "([% PROCESS bar.tt %])" => "(BAR)" ok 124 - Line 201 "[% PROCESS foo.tt %]" => "(BAR)" ok 125 - Line 202 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 126 - Line 203 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 127 - Line 204 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 128 - Line 205 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 129 - Line 206 "([% SET file = 'bar.tt' %][% PROCESS $file %])" => "(BAR)" ok 130 - Line 207 "([% SET file = 'bar.tt' %][% PROCESS ${file} %])" => "(BAR)" ok 131 - Line 208 "([% SET file = 'bar.tt' %][% PROCESS "$file" %])" => "(BAR)" ok 132 - Line 209 "([% SET file = 'bar' %][% PROCESS "${file}.tt" %])" => "(BAR)" ok 133 - Line 211 "([% PROCESS baz.tt %])" => "(42)" ok 134 - Line 212 "([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 135 - Line 213 "[% SET baz = 21 %]([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 136 - Line 215 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 137 - Line 216 "[% PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 138 - Line 217 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 139 - Line 219 "[% PROCESS nested/foo2.tt %]" => "" ok 140 - Line 220 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 141 - Line 221 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ### WRAPPER ######################################### engine_option (compile_perl) ok 142 - Line 226 "([% WRAPPER wrap.tt %])" => "" ok 143 - Line 227 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)" ok 144 - Line 228 "([% WRAPPER wrap.tt %] ([% baz %]) [% END %])" => "(Hi () there)" ok 145 - Line 229 "([% WRAPPER wrap.tt %] one [% END %])" => "(HiBAZ one there)" ok 146 - Line 230 "([% WRAPPER wrap.tt %] ([% baz; baz='-local' %]) [% END %][% baz %])" => "(Hi-local () there-local)" ok 147 - Line 231 "([% WRAPPER wrap.tt %][% META foo='BLAM' %] [% END %])" => "(HiBLAM there)" ### CONFIG PRE_PROCESS ############################## engine_option (compile_perl) ok 148 - Line 236 "Foo" => "BARFoo" ok 149 - Line 237 "Foo" => "BARFoo" ok 150 - Line 238 "Foo" => "(BAR)BARFoo" ok 151 - Line 239 "Foo" => "BlueBARFoo" ok 152 - Line 240 "Foo[% blue='Blue' %]" => "BARFoo" ok 153 - Line 241 "Foo[% META foo='meta' %]" => "(metaBAR)Foo" ok 154 - Line 242 "([% WRAPPER wrap.tt %] one [% END %])" => "BAR(Hi one there)" ok 155 - Line 244 "Foo" => "<>Foo" ### CONFIG POST_PROCESS ############################# engine_option (compile_perl) ok 156 - Line 249 "Foo" => "FooBAR" ok 157 - Line 250 "Foo" => "FooBAR" ok 158 - Line 251 "Foo" => "Foo(BAR)BAR" ok 159 - Line 252 "Foo" => "FooBlueBAR" ok 160 - Line 253 "Foo[% blue='Blue' %]" => "FooBlueBAR" ok 161 - Line 254 "Foo[% META foo='meta' %]" => "Foo(metaBAR)" ok 162 - Line 255 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)BAR" ok 163 - Line 257 "Foo" => "Foo<>" ### CONFIG PROCESS ################################## engine_option (compile_perl) ok 164 - Line 262 "Foo" => "BAR" ok 165 - Line 263 "Foo" => "BAR" ok 166 - Line 264 "Foo" => "(BAR)BAR" ok 167 - Line 265 "Foo" => "BlueBAR" ok 168 - Line 266 "Foo[% META foo='meta' %]" => "(metaBAR)" ok 169 - Line 267 "Foo[% META foo='meta' %]" => "BAR(metaBAR)" ok 170 - Line 268 "Foo[% META foo='meta' %]" => "(metaBAR)BAR" ok 171 - Line 270 "Foo" => "<>" ### CONFIG WRAPPER ################################## engine_option (compile_perl) ok 172 - Line 275 " one " => "Hi one there" ok 173 - Line 276 " one " => "Hi one there" ok 174 - Line 277 " one " => "HiwrapHi one therethere" ok 175 - Line 278 " ([% baz %]) " => "Hi () there" ok 176 - Line 279 " one " => "HiBAZ one there" ok 177 - Line 280 " ([% baz; baz='-local' %]) " => "Hi-local () there" ok 178 - Line 281 "[% META foo='BLAM' %] " => "HiBLAM there" ok 179 - Line 283 " one " => "BARHi one there" ok 180 - Line 284 " one " => "HiBARthere" ok 181 - Line 285 " one " => "Hi one thereBAR" ok 182 - Line 287 "Foo" => "<>" ### CONFIG ERRORS ################################### engine_option (compile_perl) ok 183 - Line 292 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 184 - Line 293 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 185 - Line 294 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 186 - Line 295 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 187 - Line 296 "[% THROW foo 'bar' %]" => "Error2 (foo) - (bar)" ok 188 - Line 297 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 189 - Line 298 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 190 - Line 299 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 191 - Line 300 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 192 - Line 302 "[% THROW foo 'bar' %]" => "BARError (foo) - (bar)" ok 193 - Line 303 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 194 - Line 304 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 195 - Line 306 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)BAR" ok 196 - Line 307 "[% THROW foo 'bar' %]" => "HiError (foo) - (bar)there" ok 197 - Line 309 "(outer)[% PROCESS 'die.tt' %]" => "Error (bing) - (blang)" ok 198 - Line 311 "(outer)[% TRY %][% PROCESS 'die.tt' %][% CATCH %] [% END %]" => "(outer) " ok 199 - Line 313 " one " => "" ok 200 - Line 314 " one " => "" ok 201 - Line 315 " one " => "" ### CONFIG and DUMP ################################# engine_option (compile_perl) ok 202 - Line 320 "[% CONFIG DUMP => {html => 0}; DUMP foo; PROCESS config.tt; DUMP foo %]" => "DUMP: File "input text" line 1 # foo = 'FOO'; # DUMP: File "config.tt" line 1
foo = 'FOO';
# 
DUMP: File "input text" line 1 # foo = 'FOO'; # " ### NOT FOUND CACHE ################################# engine_option (compile_perl) ok 203 - Line 330 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found (cached)) # " ok 204 - Line 331 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ok 205 - Line 332 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ### DONE ############################################ engine_option (compile_perl) ### INSERT ########################################## engine_option (stream) ok 206 - Line 173 "([% INSERT bar.tt %])" => "([% blue %]BAR)" ok 207 - Line 174 "([% SET file = 'bar.tt' %][% INSERT $file %])" => "([% blue %]BAR)" ok 208 - Line 175 "([% SET file = 'bar.tt' %][% INSERT ${file} %])" => "([% blue %]BAR)" ok 209 - Line 176 "([% SET file = 'bar.tt' %][% INSERT "$file" %])" => "([% blue %]BAR)" ok 210 - Line 177 "([% SET file = 'bar' %][% INSERT "${file}.tt" %])" => "([% blue %]BAR)" ### INCLUDE ######################################### engine_option (stream) ok 211 - Line 182 "([% INCLUDE bar.tt %])" => "(BAR)" ok 212 - Line 183 "[% PROCESS foo.tt %]" => "(BAR)" ok 213 - Line 184 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 214 - Line 185 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 215 - Line 186 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 216 - Line 187 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 217 - Line 188 "([% SET file = 'bar.tt' %][% INCLUDE $file %])" => "(BAR)" ok 218 - Line 189 "([% SET file = 'bar.tt' %][% INCLUDE ${file} %])" => "(BAR)" ok 219 - Line 190 "([% SET file = 'bar.tt' %][% INCLUDE "$file" %])" => "(BAR)" ok 220 - Line 191 "([% SET file = 'bar' %][% INCLUDE "${file}.tt" %])" => "(BAR)" ok 221 - Line 193 "([% INCLUDE baz.tt %])" => "(42)" ok 222 - Line 194 "([% INCLUDE baz.tt %])[% baz %]" => "(42)" ok 223 - Line 195 "[% SET baz = 21 %]([% INCLUDE baz.tt %])[% baz %]" => "(42)21" ### PROCESS ######################################### engine_option (stream) ok 224 - Line 200 "([% PROCESS bar.tt %])" => "(BAR)" ok 225 - Line 201 "[% PROCESS foo.tt %]" => "(BAR)" ok 226 - Line 202 "[% PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 227 - Line 203 "[% META foo = 'string'; PROCESS meta.tt %]" => "Metafoo() Metabar(meta.tt)" ok 228 - Line 204 "[% PROCESS meta.tt %][% template.bar %]" => "Metafoo() Metabar(meta.tt)" ok 229 - Line 205 "[% META foo = 'meta'; PROCESS foo.tt %]" => "(metaBAR)" ok 230 - Line 206 "([% SET file = 'bar.tt' %][% PROCESS $file %])" => "(BAR)" ok 231 - Line 207 "([% SET file = 'bar.tt' %][% PROCESS ${file} %])" => "(BAR)" ok 232 - Line 208 "([% SET file = 'bar.tt' %][% PROCESS "$file" %])" => "(BAR)" ok 233 - Line 209 "([% SET file = 'bar' %][% PROCESS "${file}.tt" %])" => "(BAR)" ok 234 - Line 211 "([% PROCESS baz.tt %])" => "(42)" ok 235 - Line 212 "([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 236 - Line 213 "[% SET baz = 21 %]([% PROCESS baz.tt %])[% baz %]" => "(42)42" ok 237 - Line 215 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 238 - Line 216 "[% PROCESS nested/foo.tt %]" => "(Nested foo Nested bar)" ok 239 - Line 217 "[% PROCESS nested/foo.tt %]" => "(Nested foo BAR)" ok 240 - Line 219 "[% PROCESS nested/foo2.tt %]" => "(Nested foo " ok 241 - Line 220 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ok 242 - Line 221 "[% PROCESS nested/foo2.tt %]" => "(Nested foo Nested bar2)" ### WRAPPER ######################################### engine_option (stream) ok 243 - Line 226 "([% WRAPPER wrap.tt %])" => "" ok 244 - Line 227 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)" ok 245 - Line 228 "([% WRAPPER wrap.tt %] ([% baz %]) [% END %])" => "(Hi () there)" ok 246 - Line 229 "([% WRAPPER wrap.tt %] one [% END %])" => "(HiBAZ one there)" ok 247 - Line 230 "([% WRAPPER wrap.tt %] ([% baz; baz='-local' %]) [% END %][% baz %])" => "(Hi-local () there-local)" ok 248 - Line 231 "([% WRAPPER wrap.tt %][% META foo='BLAM' %] [% END %])" => "(HiBLAM there)" ### CONFIG PRE_PROCESS ############################## engine_option (stream) ok 249 - Line 236 "Foo" => "BARFoo" ok 250 - Line 237 "Foo" => "BARFoo" ok 251 - Line 238 "Foo" => "(BAR)BARFoo" ok 252 - Line 239 "Foo" => "BlueBARFoo" ok 253 - Line 240 "Foo[% blue='Blue' %]" => "BARFoo" ok 254 - Line 241 "Foo[% META foo='meta' %]" => "(metaBAR)Foo" ok 255 - Line 242 "([% WRAPPER wrap.tt %] one [% END %])" => "BAR(Hi one there)" ok 256 - Line 244 "Foo" => "<>Foo" ### CONFIG POST_PROCESS ############################# engine_option (stream) ok 257 - Line 249 "Foo" => "FooBAR" ok 258 - Line 250 "Foo" => "FooBAR" ok 259 - Line 251 "Foo" => "Foo(BAR)BAR" ok 260 - Line 252 "Foo" => "FooBlueBAR" ok 261 - Line 253 "Foo[% blue='Blue' %]" => "FooBlueBAR" ok 262 - Line 254 "Foo[% META foo='meta' %]" => "Foo(metaBAR)" ok 263 - Line 255 "([% WRAPPER wrap.tt %] one [% END %])" => "(Hi one there)BAR" ok 264 - Line 257 "Foo" => "Foo<>" ### CONFIG PROCESS ################################## engine_option (stream) ok 265 - Line 262 "Foo" => "BAR" ok 266 - Line 263 "Foo" => "BAR" ok 267 - Line 264 "Foo" => "(BAR)BAR" ok 268 - Line 265 "Foo" => "BlueBAR" ok 269 - Line 266 "Foo[% META foo='meta' %]" => "(metaBAR)" ok 270 - Line 267 "Foo[% META foo='meta' %]" => "BAR(metaBAR)" ok 271 - Line 268 "Foo[% META foo='meta' %]" => "(metaBAR)BAR" ok 272 - Line 270 "Foo" => "<>" ### CONFIG WRAPPER ################################## engine_option (stream) ok 273 - Line 275 " one " => "Hi one there" ok 274 - Line 276 " one " => "Hi one there" ok 275 - Line 277 " one " => "HiwrapHi one therethere" ok 276 - Line 278 " ([% baz %]) " => "Hi () there" ok 277 - Line 279 " one " => "HiBAZ one there" ok 278 - Line 280 " ([% baz; baz='-local' %]) " => "Hi-local () there" ok 279 - Line 281 "[% META foo='BLAM' %] " => "HiBLAM there" ok 280 - Line 283 " one " => "BARHi one there" ok 281 - Line 284 " one " => "HiBARthere" ok 282 - Line 285 " one " => "Hi one thereBAR" ok 283 - Line 287 "Foo" => "<>" ### CONFIG ERRORS ################################### engine_option (stream) ok 284 - Line 292 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 285 - Line 293 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 286 - Line 294 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 287 - Line 295 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 288 - Line 296 "[% THROW foo 'bar' %]" => "Error2 (foo) - (bar)" ok 289 - Line 297 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 290 - Line 298 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 291 - Line 299 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)" ok 292 - Line 300 "[% THROW foo.baz 'bar' %]" => "Error2 (foo.baz) - (bar)" ok 293 - Line 302 "[% THROW foo 'bar' %]" => "BARError (foo) - (bar)" ok 294 - Line 303 "[% THROW foo 'bar' %]" => "Error (bing) - (blang)" ok 295 - Line 305 "[% THROW foo 'bar' %]" => "BARError (bing) - (blang)" ok 296 - Line 306 "[% THROW foo 'bar' %]" => "Error (foo) - (bar)BAR" ok 297 - Line 307 "[% THROW foo 'bar' %]" => "HiError (foo) - (bar)there" ok 298 - Line 310 "(outer)[% PROCESS 'die.tt' %]" => "(outer)Error (bing) - (blang)" ok 299 - Line 311 "(outer)[% TRY %][% PROCESS 'die.tt' %][% CATCH %] [% END %]" => "(outer) " ok 300 - Line 313 " one " => "" ok 301 - Line 314 " one " => " one " ok 302 - Line 315 " one " => "" ### CONFIG and DUMP ################################# engine_option (stream) ok 303 - Line 320 "[% CONFIG DUMP => {html => 0}; DUMP foo; PROCESS config.tt; DUMP foo %]" => "DUMP: File "input text" line 1 # foo = 'FOO'; # DUMP: File "config.tt" line 1
foo = 'FOO';
# 
DUMP: File "input text" line 1 # foo = 'FOO'; # " ### NOT FOUND CACHE ################################# engine_option (stream) ok 304 - Line 330 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found (cached)) # " ok 305 - Line 331 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ok 306 - Line 332 "[% BLOCK foo; TRY; PROCESS blurty.tt; CATCH %]([% error.type %])([% error.info %]) # [% END; END; PROCESS foo; PROCESS foo %]" => "(file)(blurty.tt: not found) # (file)(blurty.tt: not found) # " ### DONE ############################################ engine_option (stream) ok t/15_tt_view..........1..105 ok 1 - use Template::Alloy; ok 2 # skip Template::View is not installed - skipping VIEW tests ok 3 # skip Template::View is not installed - skipping VIEW tests ok 4 # skip Template::View is not installed - skipping VIEW tests ok 5 # skip Template::View is not installed - skipping VIEW tests ok 6 # skip Template::View is not installed - skipping VIEW tests ok 7 # skip Template::View is not installed - skipping VIEW tests ok 8 # skip Template::View is not installed - skipping VIEW tests ok 9 # skip Template::View is not installed - skipping VIEW tests ok 10 # skip Template::View is not installed - skipping VIEW tests ok 11 # skip Template::View is not installed - skipping VIEW tests ok 12 # skip Template::View is not installed - skipping VIEW tests ok 13 # skip Template::View is not installed - skipping VIEW tests ok 14 # skip Template::View is not installed - skipping VIEW tests ok 15 # skip Template::View is not installed - skipping VIEW tests ok 16 # skip Template::View is not installed - skipping VIEW tests ok 17 # skip Template::View is not installed - skipping VIEW tests ok 18 # skip Template::View is not installed - skipping VIEW tests ok 19 # skip Template::View is not installed - skipping VIEW tests ok 20 # skip Template::View is not installed - skipping VIEW tests ok 21 # skip Template::View is not installed - skipping VIEW tests ok 22 # skip Template::View is not installed - skipping VIEW tests ok 23 # skip Template::View is not installed - skipping VIEW tests ok 24 # skip Template::View is not installed - skipping VIEW tests ok 25 # skip Template::View is not installed - skipping VIEW tests ok 26 # skip Template::View is not installed - skipping VIEW tests ok 27 # skip Template::View is not installed - skipping VIEW tests ok 28 # skip Template::View is not installed - skipping VIEW tests ok 29 # skip Template::View is not installed - skipping VIEW tests ok 30 # skip Template::View is not installed - skipping VIEW tests ok 31 # skip Template::View is not installed - skipping VIEW tests ok 32 # skip Template::View is not installed - skipping VIEW tests ok 33 # skip Template::View is not installed - skipping VIEW tests ok 34 # skip Template::View is not installed - skipping VIEW tests ok 35 # skip Template::View is not installed - skipping VIEW tests ok 36 # skip Template::View is not installed - skipping VIEW tests ok 37 # skip Template::View is not installed - skipping VIEW tests ok 38 # skip Template::View is not installed - skipping VIEW tests ok 39 # skip Template::View is not installed - skipping VIEW tests ok 40 # skip Template::View is not installed - skipping VIEW tests ok 41 # skip Template::View is not installed - skipping VIEW tests ok 42 # skip Template::View is not installed - skipping VIEW tests ok 43 # skip Template::View is not installed - skipping VIEW tests ok 44 # skip Template::View is not installed - skipping VIEW tests ok 45 # skip Template::View is not installed - skipping VIEW tests ok 46 # skip Template::View is not installed - skipping VIEW tests ok 47 # skip Template::View is not installed - skipping VIEW tests ok 48 # skip Template::View is not installed - skipping VIEW tests ok 49 # skip Template::View is not installed - skipping VIEW tests ok 50 # skip Template::View is not installed - skipping VIEW tests ok 51 # skip Template::View is not installed - skipping VIEW tests ok 52 # skip Template::View is not installed - skipping VIEW tests ok 53 # skip Template::View is not installed - skipping VIEW tests ok 54 # skip Template::View is not installed - skipping VIEW tests ok 55 # skip Template::View is not installed - skipping VIEW tests ok 56 # skip Template::View is not installed - skipping VIEW tests ok 57 # skip Template::View is not installed - skipping VIEW tests ok 58 # skip Template::View is not installed - skipping VIEW tests ok 59 # skip Template::View is not installed - skipping VIEW tests ok 60 # skip Template::View is not installed - skipping VIEW tests ok 61 # skip Template::View is not installed - skipping VIEW tests ok 62 # skip Template::View is not installed - skipping VIEW tests ok 63 # skip Template::View is not installed - skipping VIEW tests ok 64 # skip Template::View is not installed - skipping VIEW tests ok 65 # skip Template::View is not installed - skipping VIEW tests ok 66 # skip Template::View is not installed - skipping VIEW tests ok 67 # skip Template::View is not installed - skipping VIEW tests ok 68 # skip Template::View is not installed - skipping VIEW tests ok 69 # skip Template::View is not installed - skipping VIEW tests ok 70 # skip Template::View is not installed - skipping VIEW tests ok 71 # skip Template::View is not installed - skipping VIEW tests ok 72 # skip Template::View is not installed - skipping VIEW tests ok 73 # skip Template::View is not installed - skipping VIEW tests ok 74 # skip Template::View is not installed - skipping VIEW tests ok 75 # skip Template::View is not installed - skipping VIEW tests ok 76 # skip Template::View is not installed - skipping VIEW tests ok 77 # skip Template::View is not installed - skipping VIEW tests ok 78 # skip Template::View is not installed - skipping VIEW tests ok 79 # skip Template::View is not installed - skipping VIEW tests ok 80 # skip Template::View is not installed - skipping VIEW tests ok 81 # skip Template::View is not installed - skipping VIEW tests ok 82 # skip Template::View is not installed - skipping VIEW tests ok 83 # skip Template::View is not installed - skipping VIEW tests ok 84 # skip Template::View is not installed - skipping VIEW tests ok 85 # skip Template::View is not installed - skipping VIEW tests ok 86 # skip Template::View is not installed - skipping VIEW tests ok 87 # skip Template::View is not installed - skipping VIEW tests ok 88 # skip Template::View is not installed - skipping VIEW tests ok 89 # skip Template::View is not installed - skipping VIEW tests ok 90 # skip Template::View is not installed - skipping VIEW tests ok 91 # skip Template::View is not installed - skipping VIEW tests ok 92 # skip Template::View is not installed - skipping VIEW tests ok 93 # skip Template::View is not installed - skipping VIEW tests ok 94 # skip Template::View is not installed - skipping VIEW tests ok 95 # skip Template::View is not installed - skipping VIEW tests ok 96 # skip Template::View is not installed - skipping VIEW tests ok 97 # skip Template::View is not installed - skipping VIEW tests ok 98 # skip Template::View is not installed - skipping VIEW tests ok 99 # skip Template::View is not installed - skipping VIEW tests ok 100 # skip Template::View is not installed - skipping VIEW tests ok 101 # skip Template::View is not installed - skipping VIEW tests ok 102 # skip Template::View is not installed - skipping VIEW tests ok 103 # skip Template::View is not installed - skipping VIEW tests ok 104 # skip Template::View is not installed - skipping VIEW tests ok 105 # skip Template::View is not installed - skipping VIEW tests ok 104/105 skipped: various reasons t/20_html_template....1..240 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### VAR ############################################# compile perl (0) Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/HTE.pm line 71. ok 3 - Line 94 "Foo" => "Foo" ok 4 - Line 96 "" => "FOO" ok 5 - Line 97 "" => "FOO" ok 6 - Line 98 "" => "FOO" ok 7 - Line 99 "" => "FOO" ok 8 - Line 100 "" => "FOO" ok 9 - Line 101 "" => "FOO" ok 10 - Line 102 "" => "FOO" ok 11 - Line 103 "" => "FOO" ok 12 - Line 104 "" => "FOO" ok 13 - Line 105 "" => "FOO" ok 14 - Line 106 "" => "FOO" ok 15 - Line 107 "" => "FOO" ok 16 - Line 108 "" => "FOO" ok 17 - Line 110 "" => "<>" ok 18 - Line 111 "" => "<>" ok 19 - Line 112 "" => "<>" ok 20 - Line 113 "" => "<>" ok 21 - Line 114 "" => "<>" ok 22 - Line 115 "" => "<>" ok 23 - Line 116 "" => "<>" ok 24 - Line 117 "" => "<>" ok 25 - Line 118 "" => "<>" ok 26 - Line 119 "" => "%3C%3E" ok 27 - Line 120 "" => "<>\n\r \"\'" ok 28 - Line 122 "" => "<>" ok 29 - Line 123 "" => "<>" ok 30 - Line 124 "" => "<>" ok 31 - Line 125 "" => "<>" ok 32 - Line 127 "" => "FOO" ok 33 - Line 128 "" => "FOO" ok 34 - Line 129 "" => "FOO" ok 35 - Line 130 "d" => "bard" ok 36 - Line 131 "d" => "bard" ok 37 - Line 132 "d" => "bard" ok 38 - Line 134 "" => "FOO" ok 39 - Line 135 "" => "FOO" ### IF / ELSE / UNLESS ############################## compile perl (0) ok 40 - Line 140 "bar" => "" ok 41 - Line 141 "bar" => "bar" ok 42 - Line 142 "barbing" => "bing" ok 43 - Line 143 "barbing" => "bar" ok 44 - Line 144 "barbing" => "bar" ok 45 - Line 145 "barbing" => "bar" ok 46 - Line 146 "barbing" => "bar" ok 47 - Line 147 "barbing" => "bar" ok 48 - Line 148 "barbing" => "bar" ok 49 - Line 149 "barbing" => "bing" ok 50 - Line 150 "barbing" => "bar" ok 51 - Line 151 " "" ok 52 - Line 152 "barbing" => "bar" ok 53 - Line 153 "barbaz" => "baz" ok 54 - Line 154 "bar" => "bar" ok 55 - Line 155 "bar" => "" ok 56 - Line 156 "barbaz" => "barbaz" ok 57 - Line 157 "barbing" => "bing" ok 58 - Line 158 "barbing" => "bar" ok 59 - Line 160 "barbaz" => "" ok 60 - Line 161 "barbaz" => "" ### INCLUDE ######################################### compile perl (0) ok 61 - Line 166 "bar" => "" ok 62 - Line 167 "" => "Good Day!" ok 63 - Line 168 "" => "Good Day!" ok 64 - Line 169 "" => "Good Day!" ok 65 - Line 170 "" => "Good Day!" ok 66 - Line 171 "" => "Good Day!" ok 67 - Line 172 "" => "Good Day!" ok 68 - Line 173 "" => "" ok 69 - Line 175 "" => "" ok 70 - Line 176 "" => "" ok 71 - Line 178 "" => "Good Day!" ok 72 - Line 179 "" => "Good Day!" ok 73 - Line 180 "" => "Good Day!" ok 74 - Line 182 "" => "()" ok 75 - Line 183 "" => "(hi)" ### EXPR ############################################ compile perl (0) ok 76 - Line 188 "" => "777" ok 77 - Line 189 "" => "777" ok 78 - Line 190 "" => "777" ok 79 - Line 191 "" => "777" ok 80 - Line 192 "" => "777" ok 81 - Line 193 "" => "<>" ok 82 - Line 194 "" => "" ok 83 - Line 195 "" => "" ok 84 - Line 197 "" => "FOO" ### LOOP ############################################ compile perl (0) ok 85 - Line 202 "foo" => "foo" ok 86 - Line 203 "Hifoo" => "foo" ok 87 - Line 204 "Hifoo" => "Hifoo" ok 88 - Line 205 "Hifoo" => "HiHifoo" ok 89 - Line 206 "()foo" => "(1)(2)(3)foo" ok 90 - Line 207 "()foo" => "(1)(2)(3)foo" ok 91 - Line 208 "()foo" => "(1)(2)(3)foo" ok 92 - Line 210 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 93 - Line 212 "()()foo" => "(1)()(2)()(3)()foo" ok 94 - Line 213 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 95 - Line 215 "()foo" => "(1)()(3)foo" ok 96 - Line 217 " # (||||)foo" => " # (||||) # (||||) # (||||)foo" ok 97 - Line 227 " # (||||)foo" => " # (1|0|1|0|1) # (0|0|0|1|2) # (0|1|1|0|3)foo" ### TT3 DIRECTIVES ################################## compile perl (0) ok 98 - Line 236 "" => "FOO" ok 99 - Line 237 "" => "" ok 100 - Line 238 "" => "" ok 101 - Line 239 "" => "10" ok 102 - Line 241 "barweebing" => "bar" ok 103 - Line 243 "()" => "(foo)" ok 104 - Line 244 "()" => "(foo)" ok 105 - Line 245 "()" => "(1)(2)(3)" ok 106 - Line 247 "()" => "(bar)" ok 107 - Line 248 "()" => "(bar)" ok 108 - Line 250 "" => "bar" ok 109 - Line 252 "You said " => "You said hello" ### TT3 CHOMPING #################################### compile perl (0) ok 110 - Line 257 " # " => " # FOO" ok 111 - Line 258 " # " => "FOO" ok 112 - Line 259 " # <-TMPL_GET foo>" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (0) ok 113 - Line 264 "$foo ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 114 - Line 265 "$foo ${ 1 + 2 }" => "FOO FOO 3" ok 115 - Line 266 " 1>$foo ${ 1 + 2 }" => "FOO FOO 3" ok 116 - Line 268 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 117 - Line 269 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 118 - Line 270 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 119 - Line 271 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 120 - Line 272 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 121 - Line 273 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### DONE ############################################ compile perl (0) ### VAR ############################################# compile perl (1) ok 122 - Line 94 "Foo" => "Foo" ok 123 - Line 96 "" => "FOO" ok 124 - Line 97 "" => "FOO" ok 125 - Line 98 "" => "FOO" ok 126 - Line 99 "" => "FOO" ok 127 - Line 100 "" => "FOO" ok 128 - Line 101 "" => "FOO" ok 129 - Line 102 "" => "FOO" ok 130 - Line 103 "" => "FOO" ok 131 - Line 104 "" => "FOO" ok 132 - Line 105 "" => "FOO" ok 133 - Line 106 "" => "FOO" ok 134 - Line 107 "" => "FOO" ok 135 - Line 108 "" => "FOO" ok 136 - Line 110 "" => "<>" ok 137 - Line 111 "" => "<>" ok 138 - Line 112 "" => "<>" ok 139 - Line 113 "" => "<>" ok 140 - Line 114 "" => "<>" ok 141 - Line 115 "" => "<>" ok 142 - Line 116 "" => "<>" ok 143 - Line 117 "" => "<>" ok 144 - Line 118 "" => "<>" ok 145 - Line 119 "" => "%3C%3E" ok 146 - Line 120 "" => "<>\n\r \"\'" ok 147 - Line 122 "" => "<>" ok 148 - Line 123 "" => "<>" ok 149 - Line 124 "" => "<>" ok 150 - Line 125 "" => "<>" ok 151 - Line 127 "" => "FOO" ok 152 - Line 128 "" => "FOO" ok 153 - Line 129 "" => "FOO" ok 154 - Line 130 "d" => "bard" ok 155 - Line 131 "d" => "bard" ok 156 - Line 132 "d" => "bard" ok 157 - Line 134 "" => "FOO" ok 158 - Line 135 "" => "FOO" ### IF / ELSE / UNLESS ############################## compile perl (1) ok 159 - Line 140 "bar" => "" ok 160 - Line 141 "bar" => "bar" ok 161 - Line 142 "barbing" => "bing" ok 162 - Line 143 "barbing" => "bar" ok 163 - Line 144 "barbing" => "bar" ok 164 - Line 145 "barbing" => "bar" ok 165 - Line 146 "barbing" => "bar" ok 166 - Line 147 "barbing" => "bar" ok 167 - Line 148 "barbing" => "bar" ok 168 - Line 149 "barbing" => "bing" ok 169 - Line 150 "barbing" => "bar" ok 170 - Line 151 " "" ok 171 - Line 152 "barbing" => "bar" ok 172 - Line 153 "barbaz" => "baz" ok 173 - Line 154 "bar" => "bar" ok 174 - Line 155 "bar" => "" ok 175 - Line 156 "barbaz" => "barbaz" ok 176 - Line 157 "barbing" => "bing" ok 177 - Line 158 "barbing" => "bar" ok 178 - Line 160 "barbaz" => "" ok 179 - Line 161 "barbaz" => "" ### INCLUDE ######################################### compile perl (1) ok 180 - Line 166 "bar" => "" ok 181 - Line 167 "" => "Good Day!" ok 182 - Line 168 "" => "Good Day!" ok 183 - Line 169 "" => "Good Day!" ok 184 - Line 170 "" => "Good Day!" ok 185 - Line 171 "" => "Good Day!" ok 186 - Line 172 "" => "Good Day!" ok 187 - Line 173 "" => "" ok 188 - Line 175 "" => "" ok 189 - Line 176 "" => "" ok 190 - Line 178 "" => "Good Day!" ok 191 - Line 179 "" => "Good Day!" ok 192 - Line 180 "" => "Good Day!" ok 193 - Line 182 "" => "()" ok 194 - Line 183 "" => "(hi)" ### EXPR ############################################ compile perl (1) ok 195 - Line 188 "" => "777" ok 196 - Line 189 "" => "777" ok 197 - Line 190 "" => "777" ok 198 - Line 191 "" => "777" ok 199 - Line 192 "" => "777" ok 200 - Line 193 "" => "<>" ok 201 - Line 194 "" => "" ok 202 - Line 195 "" => "" ok 203 - Line 197 "" => "FOO" ### LOOP ############################################ compile perl (1) ok 204 - Line 202 "foo" => "foo" ok 205 - Line 203 "Hifoo" => "foo" ok 206 - Line 204 "Hifoo" => "Hifoo" ok 207 - Line 205 "Hifoo" => "HiHifoo" ok 208 - Line 206 "()foo" => "(1)(2)(3)foo" ok 209 - Line 207 "()foo" => "(1)(2)(3)foo" ok 210 - Line 208 "()foo" => "(1)(2)(3)foo" ok 211 - Line 210 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 212 - Line 212 "()()foo" => "(1)()(2)()(3)()foo" ok 213 - Line 213 "()()foo" => "(1)(B)(2)(B)(3)(B)foo" ok 214 - Line 215 "()foo" => "(1)()(3)foo" ok 215 - Line 217 " # (||||)foo" => " # (||||) # (||||) # (||||)foo" ok 216 - Line 227 " # (||||)foo" => " # (1|0|1|0|1) # (0|0|0|1|2) # (0|1|1|0|3)foo" ### TT3 DIRECTIVES ################################## compile perl (1) ok 217 - Line 236 "" => "FOO" ok 218 - Line 237 "" => "" ok 219 - Line 238 "" => "" ok 220 - Line 239 "" => "10" ok 221 - Line 241 "barweebing" => "bar" ok 222 - Line 243 "()" => "(foo)" ok 223 - Line 244 "()" => "(foo)" ok 224 - Line 245 "()" => "(1)(2)(3)" ok 225 - Line 247 "()" => "(bar)" ok 226 - Line 248 "()" => "(bar)" ok 227 - Line 250 "" => "bar" ok 228 - Line 252 "You said " => "You said hello" ### TT3 CHOMPING #################################### compile perl (1) ok 229 - Line 257 " # " => " # FOO" ok 230 - Line 258 " # " => "FOO" ok 231 - Line 259 " # <-TMPL_GET foo>" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (1) ok 232 - Line 264 "$foo ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 233 - Line 265 "$foo ${ 1 + 2 }" => "FOO FOO 3" ok 234 - Line 266 " 1>$foo ${ 1 + 2 }" => "FOO FOO 3" ok 235 - Line 268 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 236 - Line 269 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 237 - Line 270 "Foo $a Bar $!a Baz" => "Foo 7 Bar 7 Baz" ok 238 - Line 271 "Foo $a Bar $!{a} Baz" => "Foo 7 Bar 7 Baz" ok 239 - Line 272 "Foo $a Bar $!a Baz" => "Foo $a Bar Baz" ok 240 - Line 273 "Foo ${a} Bar $!{a} Baz" => "Foo ${a} Bar Baz" ### DONE ############################################ compile perl (1) ok t/25_text_tmp.........1..100 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### ECHO ############################################ compile perl (0) Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/TT.pm line 53. ok 3 - Line 99 "Foo" => "Foo" ok 4 - Line 101 "\#[echo $foo]\#bar" => "bar" ok 5 - Line 102 "\#[echo $foo]\#" => "FOO" ok 6 - Line 103 "\#[echo $foo $foo]\#" => "FOOFOO" ok 7 - Line 104 "\#[echo $foo "bar" $foo]\#" => "FOObarFOO" ok 8 - Line 105 "\#[echo "hi"]\#" => "hi" ok 9 - Line 106 "\#[echo 'hi']\#" => "hi" ok 10 - Line 107 "\#[echo foo]\#" => "FOO" ### COMMENT ######################################### compile perl (0) ok 11 - Line 112 "\#[comment]\# Hi there \#[endcomment]\#bar" => "bar" ok 12 - Line 113 "\#[comment]\# Hi there \#[end]\#bar" => "bar" ### IF / ELSIF / ELSE / IFN ######################### compile perl (0) ok 13 - Line 118 "\#[if $foo]\#bar\#[endif]\#bar" => "bar" ok 14 - Line 119 "\#[if "1"]\#bar\#[endif]\#" => "bar" ok 15 - Line 120 "\#[if $foo]\#bar\#[endif]\#" => "" ok 16 - Line 121 "\#[if $foo]\#bar\#[endif]\#" => "bar" ok 17 - Line 122 "\#[ifn $foo]\#bar\#[endifn]\#" => "bar" ok 18 - Line 123 "\#[ifn $foo]\#bar\#[endifn]\#" => "" ok 19 - Line 124 "\#[if foo]\#bar\#[endif]\#" => "" ok 20 - Line 125 "\#[if foo]\#bar\#[endif]\#" => "bar" ok 21 - Line 126 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bing" ok 22 - Line 127 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bar" ok 23 - Line 128 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bar" ok 24 - Line 129 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "wee" ok 25 - Line 130 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bing" ### INCLUDE ######################################### compile perl (0) ok 26 - Line 136 "\#[include "foo.tmpl"]\#" => "Good Day!" ok 27 - Line 137 "\#[include "t/25_text_tmp.t.test_dir/foo.tmpl"]\#" => "Good Day!" ok 28 - Line 139 "\#[include "bar.tmpl"]\#" => "()" ok 29 - Line 140 "\#[include "bar.tmpl"]\#" => "(hi)" ### LOOP ############################################ compile perl (0) ok 30 - Line 145 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "foo" ok 31 - Line 146 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "Hifoo" ok 32 - Line 147 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 33 - Line 148 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 34 - Line 149 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingbangfoo" ok 35 - Line 150 "\#[loop "loop1"]\#\#[echo $boop]\#\#[endloop]\#foo" => "bopfoo" ### TT3 DIRECTIVES ################################## compile perl (0) ok 36 - Line 155 "\#[GET foo]\#" => "FOO" ok 37 - Line 156 "\#[GET 1+2+3+4]\#" => "10" ok 38 - Line 158 "\#[IF foo]\#bar\#[ELSIF wow]\#wee\#[ELSE]\#bing\#[ENDIF]\#" => "bar" ok 39 - Line 160 "\#[SET i = "foo"]\#(\#[VAR i]\#)" => "(foo)" ok 40 - Line 161 "\#[SET i = "foo"]\#(\#[GET i]\#)" => "(foo)" ok 41 - Line 162 "\#[FOR i IN [1..3]]\#(\#[VAR i]\#)\#[END]\#" => "(1)(2)(3)" ok 42 - Line 164 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[PROCESS foo i="bar"]\#" => "(bar)" ok 43 - Line 165 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[SET wow = PROCESS foo i="bar"]\#\#[VAR wow]\#" => "(bar)" ok 44 - Line 167 "\#[GET template.foo]\#\#[META foo = "bar"]\#" => "bar" ok 45 - Line 169 "\#[MACRO bar(n) BLOCK]\#You said \#[VAR n]\#\#[END]\#\#[GET bar("hello")]\#" => "You said hello" ### TT3 CHOMPING #################################### compile perl (0) ok 46 - Line 174 " # \#[GET foo]\#" => " # FOO" ok 47 - Line 175 "\#[GET foo-]\# # " => "FOO" ok 48 - Line 176 " # \#[-GET foo]\#" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (0) ok 49 - Line 181 "$foo \#[GET foo]\# ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 50 - Line 182 "$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ok 51 - Line 183 "\#[CONFIG INTERPOLATE => 1]\#$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ### DONE ############################################ compile perl (0) ### ECHO ############################################ compile perl (1) ok 52 - Line 99 "Foo" => "Foo" ok 53 - Line 101 "\#[echo $foo]\#bar" => "bar" ok 54 - Line 102 "\#[echo $foo]\#" => "FOO" ok 55 - Line 103 "\#[echo $foo $foo]\#" => "FOOFOO" ok 56 - Line 104 "\#[echo $foo "bar" $foo]\#" => "FOObarFOO" ok 57 - Line 105 "\#[echo "hi"]\#" => "hi" ok 58 - Line 106 "\#[echo 'hi']\#" => "hi" ok 59 - Line 107 "\#[echo foo]\#" => "FOO" ### COMMENT ######################################### compile perl (1) ok 60 - Line 112 "\#[comment]\# Hi there \#[endcomment]\#bar" => "bar" ok 61 - Line 113 "\#[comment]\# Hi there \#[end]\#bar" => "bar" ### IF / ELSIF / ELSE / IFN ######################### compile perl (1) ok 62 - Line 118 "\#[if $foo]\#bar\#[endif]\#bar" => "bar" ok 63 - Line 119 "\#[if "1"]\#bar\#[endif]\#" => "bar" ok 64 - Line 120 "\#[if $foo]\#bar\#[endif]\#" => "" ok 65 - Line 121 "\#[if $foo]\#bar\#[endif]\#" => "bar" ok 66 - Line 122 "\#[ifn $foo]\#bar\#[endifn]\#" => "bar" ok 67 - Line 123 "\#[ifn $foo]\#bar\#[endifn]\#" => "" ok 68 - Line 124 "\#[if foo]\#bar\#[endif]\#" => "" ok 69 - Line 125 "\#[if foo]\#bar\#[endif]\#" => "bar" ok 70 - Line 126 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bing" ok 71 - Line 127 "\#[if $foo]\#bar\#[else]\#bing\#[endif]\#" => "bar" ok 72 - Line 128 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bar" ok 73 - Line 129 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "wee" ok 74 - Line 130 "\#[if $foo]\#bar\#[elsif wow]\#wee\#[else]\#bing\#[endif]\#" => "bing" ### INCLUDE ######################################### compile perl (1) ok 75 - Line 136 "\#[include "foo.tmpl"]\#" => "Good Day!" ok 76 - Line 137 "\#[include "t/25_text_tmp.t.test_dir/foo.tmpl"]\#" => "Good Day!" ok 77 - Line 139 "\#[include "bar.tmpl"]\#" => "()" ok 78 - Line 140 "\#[include "bar.tmpl"]\#" => "(hi)" ### LOOP ############################################ compile perl (1) ok 79 - Line 145 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "foo" ok 80 - Line 146 "\#[loop "loop1"]\#Hi\#[endloop]\#foo" => "Hifoo" ok 81 - Line 147 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 82 - Line 148 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingfoo" ok 83 - Line 149 "\#[loop "loop1"]\#\#[echo $bar]\#\#[endloop]\#foo" => "bingbangfoo" ok 84 - Line 150 "\#[loop "loop1"]\#\#[echo $boop]\#\#[endloop]\#foo" => "bopfoo" ### TT3 DIRECTIVES ################################## compile perl (1) ok 85 - Line 155 "\#[GET foo]\#" => "FOO" ok 86 - Line 156 "\#[GET 1+2+3+4]\#" => "10" ok 87 - Line 158 "\#[IF foo]\#bar\#[ELSIF wow]\#wee\#[ELSE]\#bing\#[ENDIF]\#" => "bar" ok 88 - Line 160 "\#[SET i = "foo"]\#(\#[VAR i]\#)" => "(foo)" ok 89 - Line 161 "\#[SET i = "foo"]\#(\#[GET i]\#)" => "(foo)" ok 90 - Line 162 "\#[FOR i IN [1..3]]\#(\#[VAR i]\#)\#[END]\#" => "(1)(2)(3)" ok 91 - Line 164 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[PROCESS foo i="bar"]\#" => "(bar)" ok 92 - Line 165 "\#[BLOCK foo]\#(\#[VAR i]\#)\#[END]\#\#[SET wow = PROCESS foo i="bar"]\#\#[VAR wow]\#" => "(bar)" ok 93 - Line 167 "\#[GET template.foo]\#\#[META foo = "bar"]\#" => "bar" ok 94 - Line 169 "\#[MACRO bar(n) BLOCK]\#You said \#[VAR n]\#\#[END]\#\#[GET bar("hello")]\#" => "You said hello" ### TT3 CHOMPING #################################### compile perl (1) ok 95 - Line 174 " # \#[GET foo]\#" => " # FOO" ok 96 - Line 175 "\#[GET foo-]\# # " => "FOO" ok 97 - Line 176 " # \#[-GET foo]\#" => "FOO" ### TT3 INTERPOLATE ################################# compile perl (1) ok 98 - Line 181 "$foo \#[GET foo]\# ${ 1 + 2 }" => "$foo FOO ${ 1 + 2 }" ok 99 - Line 182 "$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ok 100 - Line 183 "\#[CONFIG INTERPOLATE => 1]\#$foo \#[GET foo]\# ${ 1 + 2 }" => "FOO FOO 3" ### DONE ############################################ compile perl (1) ok t/30_velocity.........1..202 ok 1 - use Template::Alloy; ok 2 - Got a test dir up and running ### VARIABLES ####################################### compile perl (0) Useless localization of match position at C:\cpanrun\depot\main\contrib-patched\perl\CPAN\src\Template-Alloy\blib\lib/Template/Alloy/Velocity.pm line 60. ok 3 - Line 80 "Foo" => "Foo" ok 4 - Line 81 "$mud_Slinger_9" => "bar" ok 5 - Line 82 "$!mud_Slinger_9" => "bar" ok 6 - Line 83 "${mud_Slinger_9}" => "bar" ok 7 - Line 84 "$!{mud_Slinger_9}" => "bar" ok 8 - Line 85 "$mud_Slinger_9<<" => "$mud_Slinger_9<<" ok 9 - Line 86 "$!mud_Slinger_9<<" => "<<" ok 10 - Line 87 "${mud_Slinger_9}<<" => "${mud_Slinger_9}<<" ok 11 - Line 88 "$!{mud_Slinger_9}<<" => "<<" ### SET ############################################# compile perl (0) ok 12 - Line 93 "\#set($foo = "bar")$foo" => "bar" ok 13 - Line 95 "\#set($monkey = $bill)$monkey" => "Bill" ok 14 - Line 96 "\#set($monkey.Friend = 'monica')$monkey.Friend" => "monica" ok 15 - Line 97 "\#set($monkey.Blame = $whitehouse.Leak)$monkey.Blame" => "from_velocity_ref_guide" ok 16 - Line 98 "\#set($monkey.Plan = $spindoctor.weave($web))$monkey.Plan" => "(spider)" ok 17 - Line 99 "\#set($monkey.Number = 123)$monkey.Number" => "123" ok 18 - Line 100 "\#set($monkey.Numbers = [1..3])$monkey.Numbers.2" => "3" ok 19 - Line 101 "\#set($monkey.Map = {"banana" : "good"})$monkey.Map.banana" => "good" ok 20 - Line 103 "\#set($value = $foo + 1)$value" => "9" ok 21 - Line 104 "\#set($value = $bar - 1)$value" => "3" ok 22 - Line 105 "\#set($value = $foo * $bar)$value" => "32" ok 23 - Line 106 "\#set($value = $foo / $bar)$value" => "2" ok 24 - Line 107 "\#set($value = $foo % $bar)$value" => "0" ok 25 - Line 109 "\#set($!value = $foo + 1)$value" => "" ### QUOTED STRINGS ################################## compile perl (0) ok 26 - Line 114 "\#set($value = "($foo)")$value" => "(bar)" ok 27 - Line 115 "\#set($value = "(\#get($foo))")$value" => "(bar)" ok 28 - Line 116 "\#set($value = "($foo)")$value" => "(bar)" ok 29 - Line 117 "\#set($value = "(\#get($foo))")$value" => "(\#get(bar))" ok 30 - Line 118 "\#set($value = '($foo)')$value" => "($foo)" ok 31 - Line 119 "\#set($value = '(\#get($foo))')$value" => "(\#get($foo))" ok 32 - Line 121 "\#set($value = "($foo)")$value" => "($foo)" ok 33 - Line 122 "\#set($value = "(\#get($foo))")$value" => "()" ok 34 - Line 123 "\#set($value = "($foo)")$value" => "($foo)" ok 35 - Line 124 "\#set($value = "(\#get($foo))")$value" => "(\#get($foo))" ok 36 - Line 126 "\#set($value = "($!foo)")$value" => "()" ok 37 - Line 127 "\#set($value = "(\#get($!foo))")$value" => "" ok 38 - Line 128 "\#set($value = "($!foo)")$value" => "()" ok 39 - Line 129 "\#set($value = "(\#get($!foo))")$value" => "(\#get())" ### COMMENTS ######################################## compile perl (0) ok 40 - Line 134 "Foo\#\#interesting # Bar" => "FooBar" ok 41 - Line 135 "Foo\#\#interesting # Bar" => "Foo # Bar" ok 42 - Line 136 "Foo\#\#interesting" => "Foo" ok 43 - Line 137 "Foo\#*interesting # " => "" ok 44 - Line 138 "Foo\#*interesting # # *\#" => "Foo" ok 45 - Line 139 "Foo\#*interesting # # *\#Bar" => "FooBar" ### ESCAPING ######################################## compile perl (0) ok 46 - Line 144 "$email" => "foo" ok 47 - Line 145 "\$email" => "$email" ok 48 - Line 146 "\\$email" => "\foo" ok 49 - Line 147 "\\\$email" => "\$email" ok 50 - Line 149 "$email" => "$email" ok 51 - Line 150 "\$email" => "$email" ok 52 - Line 151 "\\$email" => "\$email" ok 53 - Line 152 "\\\$email" => "\$email" ### IF / ELSEIF / ELSE ############################## compile perl (0) ok 54 - Line 157 "\#if($foo)bar\#{end}bar" => "bar" ok 55 - Line 158 "\#if("1")bar\#end" => "bar" ok 56 - Line 159 "\#if($foo)bar\#end" => "" ok 57 - Line 160 "\#if($foo)bar\#end" => "bar" ok 58 - Line 161 "\#if($foo)bar\#{else}baz\#end" => "bar" ok 59 - Line 162 "\#if($foo)bar\#{else}baz\#end" => "baz" ok 60 - Line 163 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "baz" ok 61 - Line 164 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "bang" ### FOREACH ######################################## compile perl (0) ok 62 - Line 169 "\#foreach( foo )bar\#{end}" => "bar" ok 63 - Line 170 "\#foreach( f IN foo )bar$f\#{end}" => "bar1bar2" ok 64 - Line 171 "\#foreach( f = foo )bar$f\#{end}" => "bar1bar2" ok 65 - Line 172 "\#foreach( f = [1,2] )bar$f\#{end}" => "bar1bar2" ok 66 - Line 173 "\#foreach( f = [1..3] )bar$f\#{end}" => "bar1bar2bar3" ok 67 - Line 174 "\#foreach( f = [{a=>'A'},{a=>'B'}] )bar$f.a\#{end}" => "barAbarB" ok 68 - Line 175 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}" => "barAbarB" ok 69 - Line 176 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}$!a" => "barAbarB" ok 70 - Line 177 "\#foreach( f = [1..3] )$loop.count/$loop.size \#{end}" => "1/3 2/3 3/3 " ### INCLUDE ######################################### compile perl (0) ok 71 - Line 183 "\#include("foo.vel")" => "Good Day!" ok 72 - Line 184 "\#parse($foo)" => "Good Day!" ok 73 - Line 185 "\#include("bar.vel")" => "($bar)" ok 74 - Line 186 "\#include("bar.vel")" => "($bar)" ### PARSE ############################################ compile perl (0) ok 75 - Line 191 "\#parse("foo.vel")" => "Good Day!" ok 76 - Line 192 "\#parse($foo)" => "Good Day!" ok 77 - Line 193 "\#parse("bar.vel")" => "($bar)" ok 78 - Line 194 "\#parse("bar.vel")" => "(foo)" ### STOP ############################################ compile perl (0) ok 79 - Line 199 "\#stop" => "" ok 80 - Line 200 "One\#{stop}Two" => "One" ok 81 - Line 201 "\#block('foo')One\#{stop}Two\#{end}First\#process('foo')Last" => "FirstOne" ok 82 - Line 202 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#end$f\#end" => "112233" ok 83 - Line 203 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#stop\#end\#end" => "1" ok 84 - Line 204 "\#foreach( $f = [1..3] )\#if(loop.first)\#stop\#end$f\#end" => "" ### EVALUATE ######################################## compile perl (0) ok 85 - Line 209 "\#set($f = '>\#try\#evaluate($f)\#{catch}caught\#end')\#evaluate($f)" => ">>>>>caught" ok 86 - Line 210 "\#set($f = '>\#try\#eval($f)\#{catch}foo\#end')\#eval($f)\#EVALUATE($f)" => ">>foo>>foo" ### MACRO ########################################### compile perl (0) ok 87 - Line 215 "\#macro(foo PROCESS bar )\#block(bar)Hi\#end$foo" => "Hi" ok 88 - Line 216 "\#macro(foo BLOCK)Hi\#end$foo" => "Hi" ok 89 - Line 217 "\#macro(foo $n BLOCK)Hi$n\#end$foo" => "Hi$n" ok 90 - Line 218 "\#macro(foo $n BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 91 - Line 219 "\#macro(foo(n) BLOCK)Hi$n\#end$foo" => "Hi$n" ok 92 - Line 220 "\#macro(foo(n) BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 93 - Line 221 "\#macro(foo $n)Hi$n\#end$foo" => "Hi$n" ok 94 - Line 222 "\#macro(foo $n)Hi$n\#end$foo(2)" => "Hi2" ok 95 - Line 223 "\#macro(foo $n)Hi$n\#end\#foo(2)" => "Hi2" ok 96 - Line 224 "\#macro(foo $n $m)Hi($n)($m)\#end\#foo(2 3)" => "Hi(2)(3)" ok 97 - Line 226 "\#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 98 - Line 238 "\#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 #################################### compile perl (0) ok 99 - Line 253 " # \#get( $foo )" => " # FOO" ok 100 - Line 254 "\#get( $foo -) # " => "FOO" ok 101 - Line 255 " # \#get(- $foo)" => "FOO" ok 102 - Line 256 " # \#get( -$foo)" => " # -7" ### DONE ############################################ compile perl (0) ### VARIABLES ####################################### compile perl (1) ok 103 - Line 80 "Foo" => "Foo" ok 104 - Line 81 "$mud_Slinger_9" => "bar" ok 105 - Line 82 "$!mud_Slinger_9" => "bar" ok 106 - Line 83 "${mud_Slinger_9}" => "bar" ok 107 - Line 84 "$!{mud_Slinger_9}" => "bar" ok 108 - Line 85 "$mud_Slinger_9<<" => "$mud_Slinger_9<<" ok 109 - Line 86 "$!mud_Slinger_9<<" => "<<" ok 110 - Line 87 "${mud_Slinger_9}<<" => "${mud_Slinger_9}<<" ok 111 - Line 88 "$!{mud_Slinger_9}<<" => "<<" ### SET ############################################# compile perl (1) ok 112 - Line 93 "\#set($foo = "bar")$foo" => "bar" ok 113 - Line 95 "\#set($monkey = $bill)$monkey" => "Bill" ok 114 - Line 96 "\#set($monkey.Friend = 'monica')$monkey.Friend" => "monica" ok 115 - Line 97 "\#set($monkey.Blame = $whitehouse.Leak)$monkey.Blame" => "from_velocity_ref_guide" ok 116 - Line 98 "\#set($monkey.Plan = $spindoctor.weave($web))$monkey.Plan" => "(spider)" ok 117 - Line 99 "\#set($monkey.Number = 123)$monkey.Number" => "123" ok 118 - Line 100 "\#set($monkey.Numbers = [1..3])$monkey.Numbers.2" => "3" ok 119 - Line 101 "\#set($monkey.Map = {"banana" : "good"})$monkey.Map.banana" => "good" ok 120 - Line 103 "\#set($value = $foo + 1)$value" => "9" ok 121 - Line 104 "\#set($value = $bar - 1)$value" => "3" ok 122 - Line 105 "\#set($value = $foo * $bar)$value" => "32" ok 123 - Line 106 "\#set($value = $foo / $bar)$value" => "2" ok 124 - Line 107 "\#set($value = $foo % $bar)$value" => "0" ok 125 - Line 109 "\#set($!value = $foo + 1)$value" => "" ### QUOTED STRINGS ################################## compile perl (1) ok 126 - Line 114 "\#set($value = "($foo)")$value" => "(bar)" ok 127 - Line 115 "\#set($value = "(\#get($foo))")$value" => "(bar)" ok 128 - Line 116 "\#set($value = "($foo)")$value" => "(bar)" ok 129 - Line 117 "\#set($value = "(\#get($foo))")$value" => "(\#get(bar))" ok 130 - Line 118 "\#set($value = '($foo)')$value" => "($foo)" ok 131 - Line 119 "\#set($value = '(\#get($foo))')$value" => "(\#get($foo))" ok 132 - Line 121 "\#set($value = "($foo)")$value" => "($foo)" ok 133 - Line 122 "\#set($value = "(\#get($foo))")$value" => "()" ok 134 - Line 123 "\#set($value = "($foo)")$value" => "($foo)" ok 135 - Line 124 "\#set($value = "(\#get($foo))")$value" => "(\#get($foo))" ok 136 - Line 126 "\#set($value = "($!foo)")$value" => "()" ok 137 - Line 127 "\#set($value = "(\#get($!foo))")$value" => "" ok 138 - Line 128 "\#set($value = "($!foo)")$value" => "()" ok 139 - Line 129 "\#set($value = "(\#get($!foo))")$value" => "(\#get())" ### COMMENTS ######################################## compile perl (1) ok 140 - Line 134 "Foo\#\#interesting # Bar" => "FooBar" ok 141 - Line 135 "Foo\#\#interesting # Bar" => "Foo # Bar" ok 142 - Line 136 "Foo\#\#interesting" => "Foo" ok 143 - Line 137 "Foo\#*interesting # " => "" ok 144 - Line 138 "Foo\#*interesting # # *\#" => "Foo" ok 145 - Line 139 "Foo\#*interesting # # *\#Bar" => "FooBar" ### ESCAPING ######################################## compile perl (1) ok 146 - Line 144 "$email" => "foo" ok 147 - Line 145 "\$email" => "$email" ok 148 - Line 146 "\\$email" => "\foo" ok 149 - Line 147 "\\\$email" => "\$email" ok 150 - Line 149 "$email" => "$email" ok 151 - Line 150 "\$email" => "$email" ok 152 - Line 151 "\\$email" => "\$email" ok 153 - Line 152 "\\\$email" => "\$email" ### IF / ELSEIF / ELSE ############################## compile perl (1) ok 154 - Line 157 "\#if($foo)bar\#{end}bar" => "bar" ok 155 - Line 158 "\#if("1")bar\#end" => "bar" ok 156 - Line 159 "\#if($foo)bar\#end" => "" ok 157 - Line 160 "\#if($foo)bar\#end" => "bar" ok 158 - Line 161 "\#if($foo)bar\#{else}baz\#end" => "bar" ok 159 - Line 162 "\#if($foo)bar\#{else}baz\#end" => "baz" ok 160 - Line 163 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "baz" ok 161 - Line 164 "\#if($foo)bar\#elseif($bing)bang\#{else}baz\#end" => "bang" ### FOREACH ######################################## compile perl (1) ok 162 - Line 169 "\#foreach( foo )bar\#{end}" => "bar" ok 163 - Line 170 "\#foreach( f IN foo )bar$f\#{end}" => "bar1bar2" ok 164 - Line 171 "\#foreach( f = foo )bar$f\#{end}" => "bar1bar2" ok 165 - Line 172 "\#foreach( f = [1,2] )bar$f\#{end}" => "bar1bar2" ok 166 - Line 173 "\#foreach( f = [1..3] )bar$f\#{end}" => "bar1bar2bar3" ok 167 - Line 174 "\#foreach( f = [{a=>'A'},{a=>'B'}] )bar$f.a\#{end}" => "barAbarB" ok 168 - Line 175 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}" => "barAbarB" ok 169 - Line 176 "\#foreach( [{a=>'A'},{a=>'B'}] )bar$a\#{end}$!a" => "barAbarB" ok 170 - Line 177 "\#foreach( f = [1..3] )$loop.count/$loop.size \#{end}" => "1/3 2/3 3/3 " ### INCLUDE ######################################### compile perl (1) ok 171 - Line 183 "\#include("foo.vel")" => "Good Day!" ok 172 - Line 184 "\#parse($foo)" => "Good Day!" ok 173 - Line 185 "\#include("bar.vel")" => "($bar)" ok 174 - Line 186 "\#include("bar.vel")" => "($bar)" ### PARSE ############################################ compile perl (1) ok 175 - Line 191 "\#parse("foo.vel")" => "Good Day!" ok 176 - Line 192 "\#parse($foo)" => "Good Day!" ok 177 - Line 193 "\#parse("bar.vel")" => "($bar)" ok 178 - Line 194 "\#parse("bar.vel")" => "(foo)" ### STOP ############################################ compile perl (1) ok 179 - Line 199 "\#stop" => "" ok 180 - Line 200 "One\#{stop}Two" => "One" ok 181 - Line 201 "\#block('foo')One\#{stop}Two\#{end}First\#process('foo')Last" => "FirstOne" ok 182 - Line 202 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#end$f\#end" => "112233" ok 183 - Line 203 "\#foreach( $f = [1..3] )$f\#if(loop.first)\#stop\#end\#end" => "1" ok 184 - Line 204 "\#foreach( $f = [1..3] )\#if(loop.first)\#stop\#end$f\#end" => "" ### EVALUATE ######################################## compile perl (1) ok 185 - Line 209 "\#set($f = '>\#try\#evaluate($f)\#{catch}caught\#end')\#evaluate($f)" => ">>>>>caught" ok 186 - Line 210 "\#set($f = '>\#try\#eval($f)\#{catch}foo\#end')\#eval($f)\#EVALUATE($f)" => ">>foo>>foo" ### MACRO ########################################### compile perl (1) ok 187 - Line 215 "\#macro(foo PROCESS bar )\#block(bar)Hi\#end$foo" => "Hi" ok 188 - Line 216 "\#macro(foo BLOCK)Hi\#end$foo" => "Hi" ok 189 - Line 217 "\#macro(foo $n BLOCK)Hi$n\#end$foo" => "Hi$n" ok 190 - Line 218 "\#macro(foo $n BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 191 - Line 219 "\#macro(foo(n) BLOCK)Hi$n\#end$foo" => "Hi$n" ok 192 - Line 220 "\#macro(foo(n) BLOCK)Hi$n\#end$foo(2)" => "Hi2" ok 193 - Line 221 "\#macro(foo $n)Hi$n\#end$foo" => "Hi$n" ok 194 - Line 222 "\#macro(foo $n)Hi$n\#end$foo(2)" => "Hi2" ok 195 - Line 223 "\#macro(foo $n)Hi$n\#end\#foo(2)" => "Hi2" ok 196 - Line 224 "\#macro(foo $n $m)Hi($n)($m)\#end\#foo(2 3)" => "Hi(2)(3)" ok 197 - Line 226 "\#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 198 - Line 238 "\#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 #################################### compile perl (1) ok 199 - Line 253 " # \#get( $foo )" => " # FOO" ok 200 - Line 254 "\#get( $foo -) # " => "FOO" ok 201 - Line 255 " # \#get(- $foo)" => "FOO" ok 202 - Line 256 " # \#get( -$foo)" => " # -7" ### DONE ############################################ compile perl (1) ok All tests successful, 104 subtests skipped. Files=9, Tests=4056, 14 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Compile.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Context.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Exception.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\HTE.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Iterator.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Operator.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Parse.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Play.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Stream.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Tmpl.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\TT.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\Velocity.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Template\Alloy\VMethod.html Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy.pod Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Compile.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Context.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Exception.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\HTE.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Iterator.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Operator.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Parse.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Play.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Stream.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Tmpl.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\TT.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\Velocity.pm Installing C:\cpanrun\build\5-10-0\site\lib\Template\Alloy\VMethod.pm Appending installation info to C:\cpanrun\build\5-10-0\lib/perllocal.pod