diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-14 15:53:15 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-14 15:53:15 -0500 |
commit | 0435a4616d2eaf1198f7c2e3acdc121a958e8494 (patch) | |
tree | 07dbef615f1ab87ca6c6f6f816a77c100070edb0 | |
parent | 131eb38b3800c8ede6e3b981538edfc062ef7a0b (diff) | |
download | text-handlebars-0435a4616d2eaf1198f7c2e3acdc121a958e8494.tar.gz text-handlebars-0435a4616d2eaf1198f7c2e3acdc121a958e8494.zip |
simplify
-rw-r--r-- | lib/Text/Handlebars.pm | 19 |
1 files 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, |