From: Tomas Doran Date: Wed, 16 Feb 2011 21:43:06 +0000 (+0000) Subject: Merge revert 8df53bed X-Git-Tag: 5.80032~5^2~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=f4dbb497758845c429e2861f9e4c7e0d31e00d91;hp=29076427c02971d7b3e65326131ff77ca5a43de7 Merge revert 8df53bed --- diff --git a/lib/Catalyst/DispatchType/Chained.pm b/lib/Catalyst/DispatchType/Chained.pm index 7d0d42a..be76915 100644 --- a/lib/Catalyst/DispatchType/Chained.pm +++ b/lib/Catalyst/DispatchType/Chained.pm @@ -187,7 +187,6 @@ sub recurse_match { return () unless $children; my $best_action; my @captures; - my $found=0; TRY: foreach my $try_part (sort { length($b) <=> length($a) } keys %$children) { # $b then $a to try longest part first @@ -198,7 +197,6 @@ sub recurse_match { splice( # and strip them off @parts as well @parts, 0, scalar(@{[split('/', $try_part)]}) ))); # @{[]} to avoid split to @_ - $found=1; } my @try_actions = @{$children->{$try_part}}; TRY_ACTION: foreach my $action (@try_actions) { @@ -214,7 +212,7 @@ sub recurse_match { push(@captures, splice(@parts, 0, $capture_attr->[0])); # try the remaining parts against children of this action - my ($actions, $captures, $action_parts, $found) = $self->recurse_match( + my ($actions, $captures, $action_parts) = $self->recurse_match( $c, '/'.$action->reverse, \@parts ); # No best action currently @@ -222,15 +220,13 @@ sub recurse_match { # OR The action has equal parts but less captured data (ergo more defined) if ($actions && (!$best_action || - $#$action_parts < $#{$best_action->{parts}} || + $#$action_parts < $#{$best_action->{parts}} || ($#$action_parts == $#{$best_action->{parts}} && - $#$captures < $#{$best_action->{captures}} && ($found > $best_action->{found}) - ))) { + $#$captures < $#{$best_action->{captures}}))){ $best_action = { actions => [ $action, @$actions ], captures=> [ @captures, @$captures ], - parts => $action_parts, - found=>$found + parts => $action_parts }; } } @@ -254,14 +250,13 @@ sub recurse_match { $best_action = { actions => [ $action ], captures=> [], - parts => \@parts, - found=>$found, + parts => \@parts } } } } } - return @$best_action{qw/actions captures parts found/} if $best_action; + return @$best_action{qw/actions captures parts/} if $best_action; return (); }