From 0435a4616d2eaf1198f7c2e3acdc121a958e8494 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 14 Oct 2012 15:53:15 -0500 Subject: simplify --- lib/Text/Handlebars.pm | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm index d104003..2e4770f 100644 --- a/lib/Text/Handlebars.pm +++ b/lib/Text/Handlebars.pm @@ -131,20 +131,13 @@ sub default_functions { '(new_vars_for)' => sub { my ($vars, $value, $i) = @_; - if (my $ref = ref($value)) { - if (defined $ref && $ref eq 'ARRAY') { - die "no iterator cycle provided?" - unless defined $i; - - $value = ref($value->[$i]) && ref($value->[$i]) eq 'HASH' - ? { '.' => $value->[$i], %{ $value->[$i] } } - : { '.' => $value->[$i] }; - - $ref = ref($value); - } - - return $vars unless $ref && $ref eq 'HASH'; + if (ref($value) eq 'ARRAY') { + $value = ref($value->[$i]) eq 'HASH' + ? { '.' => $value->[$i], %{ $value->[$i] } } + : { '.' => $value->[$i] }; + } + if (ref($value) eq 'HASH') { weaken(my $vars_copy = $vars); return { '@index' => $i, -- cgit v1.2.3