From: Yuval Kogman Date: Thu, 26 Apr 2007 22:16:22 +0000 (+0000) Subject: prevent $request->path used as setter from keeping stale data X-Git-Tag: 5.7099_04~189 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=02fb5d7801fb6d06d064e581120fc33a7ee305e9 prevent $request->path used as setter from keeping stale data --- diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 496682d..074e350 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -365,22 +365,24 @@ Alias for path, added for compability with L. =cut sub path { - my ( $self, $params ) = @_; + my ( $self, @params ) = @_; - if ($params) { - $self->uri->path($params); + if (@params) { + $self->uri->path(@params); + undef $self->{path}; } - else { - return $self->{path} if $self->{path}; + elsif ( defined( my $path = $self->{path} ) ) { + return $path; } + else { + my $path = $self->uri->path; + my $location = $self->base->path; + $path =~ s/^(\Q$location\E)?//; + $path =~ s/^\///; + $self->{path} = $path; - my $path = $self->uri->path; - my $location = $self->base->path; - $path =~ s/^(\Q$location\E)?//; - $path =~ s/^\///; - $self->{path} = $path; - - return $path; + return $path; + } } =head2 $req->protocol