GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MOJO::PATH (3)

.ds Aq ’

NAME

Mojo::Path - Path

CONTENTS

SYNOPSIS



  use Mojo::Path;

  # Parse
  my $path = Mojo::Path->new(/foo%2Fbar%3B/baz.html);
  say $path->[0];

  # Build
  my $path = Mojo::Path->new(/i/X);
  push @$path, mojolicious;
  say "$path";



DESCRIPTION

Mojo::Path is a container for paths used by Mojo::URL, based on RFC 3986 <http://tools.ietf.org/html/rfc3986>.

ATTRIBUTES

Mojo::Path implements the following attributes.

    charset



  my $charset = $path->charset;
  $path       = $path->charset(UTF-8);



Charset used for encoding and decoding, defaults to UTF-8.



  # Disable encoding and decoding
  $path->charset(undef);



METHODS

Mojo::Path inherits all methods from Mojo::Base and implements the following new ones.

    canonicalize



  $path = $path->canonicalize;



Canonicalize path by resolving . and .., in addition ... will be treated as . to protect from path traversal attacks.



  # "/foo/baz"
  Mojo::Path->new(/foo/./bar/../baz)->canonicalize;

  # "/../baz"
  Mojo::Path->new(/foo/../bar/../../baz)->canonicalize;

  # "/foo/bar"
  Mojo::Path->new(/foo/.../bar)->canonicalize;



    clone



  my $clone = $path->clone;



Clone path.

    contains



  my $bool = $path->contains(/i/X/mojolicious);



Check if path contains given prefix.



  # True
  Mojo::Path->new(/foo/bar)->contains(/);
  Mojo::Path->new(/foo/bar)->contains(/foo);
  Mojo::Path->new(/foo/bar)->contains(/foo/bar);

  # False
  Mojo::Path->new(/foo/bar)->contains(/f);
  Mojo::Path->new(/foo/bar)->contains(/bar);
  Mojo::Path->new(/foo/bar)->contains(/whatever);



    leading_slash



  my $bool = $path->leading_slash;
  $path    = $path->leading_slash($bool);



Path has a leading slash. Note that this method will normalize the path and that %2F will be treated as / for security reasons.



  # "/foo/bar"
  Mojo::Path->new(foo/bar)->leading_slash(1);

  # "foo/bar"
  Mojo::Path->new(/foo/bar)->leading_slash(0);



    merge



  $path = $path->merge(/foo/bar);
  $path = $path->merge(foo/bar);
  $path = $path->merge(Mojo::Path->new);



Merge paths. Note that this method will normalize both paths if necessary and that %2F will be treated as / for security reasons.



  # "/baz/yada"
  Mojo::Path->new(/foo/bar)->merge(/baz/yada);

  # "/foo/baz/yada"
  Mojo::Path->new(/foo/bar)->merge(baz/yada);

  # "/foo/bar/baz/yada"
  Mojo::Path->new(/foo/bar/)->merge(baz/yada);



    new



  my $path = Mojo::Path->new;
  my $path = Mojo::Path->new(/foo%2Fbar%3B/baz.html);



Construct a new Mojo::Path object and parse path if necessary.

    parse



  $path = $path->parse(/foo%2Fbar%3B/baz.html);



Parse path.

    to_abs_string



  my $str = $path->to_abs_string;



Turn path into an absolute string.



  # "/i/%E2%99%A5/mojolicious"
  Mojo::Path->new(/i/%E2%99%A5/mojolicious)->to_abs_string;
  Mojo::Path->new(i/%E2%99%A5/mojolicious)->to_abs_string;



    parts



  my $parts = $path->parts;
  $path     = $path->parts([qw(foo bar baz)]);



The path parts. Note that this method will normalize the path and that %2F will be treated as / for security reasons.



  # Part with slash
  push @{$path->parts}, foo/bar;



    to_dir



  my $dir = $route->to_dir;



Clone path and remove everything after the right-most slash.



  # "/i/%E2%99%A5/"
  Mojo::Path->new(/i/%E2%99%A5/mojolicious)->to_dir->to_abs_string;

  # "i/%E2%99%A5/"
  Mojo::Path->new(i/%E2%99%A5/mojolicious)->to_dir->to_abs_string;



    to_route



  my $route = $path->to_route;



Turn path into a route.



  # "/i/X/mojolicious"
  Mojo::Path->new(/i/%E2%99%A5/mojolicious)->to_route;
  Mojo::Path->new(i/%E2%99%A5/mojolicious)->to_route;



    to_string



  my $str = $path->to_string;



Turn path into a string.



  # "/i/%E2%99%A5/mojolicious"
  Mojo::Path->new(/i/%E2%99%A5/mojolicious)->to_string;

  # "i/%E2%99%A5/mojolicious"
  Mojo::Path->new(i/%E2%99%A5/mojolicious)->to_string;



    trailing_slash



  my $bool = $path->trailing_slash;
  $path    = $path->trailing_slash($bool);



Path has a trailing slash. Note that this method will normalize the path and that %2F will be treated as / for security reasons.



  # "/foo/bar/"
  Mojo::Path->new(/foo/bar)->trailing_slash(1);

  # "/foo/bar"
  Mojo::Path->new(/foo/bar/)->trailing_slash(0);



OPERATORS

Mojo::Path overloads the following operators.

    array



  my @parts = @$path;



Alias for parts. Note that this will normalize the path and that %2F will be treated as / for security reasons.



  say $path->[0];
  say for @$path;



    bool



  my $bool = !!$path;



Always true.

    stringify



  my $str = "$path";



Alias for to_string.

SEE ALSO

Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MOJO::PATH (3) 2016-03-15

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.