Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. use strict;
  2. use warnings;
  3. use Mojo::Template;
  4. use Text::Xslate;
  5. use Template;
  6.  
  7. # some useful options (see below for full list)
  8. my $config = {
  9. EVAL_PERL => 0, # evaluate Perl code blocks
  10. };
  11.  
  12. # create Template object
  13. my $template = Template->new($config);
  14.  
  15. use Benchmark qw/timethese cmpthese/;
  16. my $ref = [
  17. map { ( { name => 'peach', color => 'white', number => $_, } ) } ( 0 .. 1000 ),
  18. ];
  19. my $tx = Text::Xslate->new;
  20. my $mt = Mojo::Template->new;
  21. my $result = timethese(
  22. -5,
  23. {
  24. mojo_template => sub {
  25. $mt->render( '
  26. % my ($av) = @_;
  27.  
  28. % foreach my $item (@$av) {
  29. <ul>
  30. <li>name:<%= $item->{name} %></li>
  31. <li>color:<%= $item->{color} %></li>
  32.  
  33. <% if ($item->{number} > 2) { %>
  34. <li>number:<%= $item->{number} %></li>
  35. <% } %>
  36.  
  37.  
  38. </ul>
  39. % }
  40. ', $ref );
  41. },
  42. text_xslate => sub {
  43. $tx->render_string(
  44. ': for $av -> $item {
  45. <ul>
  46. <li>name:<: $item.name :></li>
  47. <li>color:<: $item.color :></li>
  48.  
  49. : if $item.number > 2 {
  50. <li>number:<: $item.number :></li>
  51.  
  52. : }
  53.  
  54. </ul>
  55. : } ', { av => $ref }
  56.  
  57. );
  58. },
  59.  
  60. tt => sub {
  61. my $out = '';
  62. $out = $template->process(
  63. \' [% FOR item IN av %]
  64. <ul>
  65. <li>name:[% item.name %]</li>
  66. <li>color:[% item.color %]</li>
  67. [% IF item.number > 2 %]
  68. <li>number:[% item.number %]</li>
  69. [%END%]
  70. </ul>
  71. [% END %] ', { av => $ref }, \$out
  72.  
  73. );
  74. },
  75.  
  76. }
  77. );
  78.  
  79. cmpthese($result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement