pathutil ======== Path::Util Break up a file path into its components. Usage: use Path::Util; my $p = Path::Util.new("d:\\docs\\usage.txt");
It can break-up Unix like or Dos like file paths.
say $p.getdrive; or say $p.drive; # it gets the drive letter, for Windwos only. Otherwise, it returns "".
say $p.getdir; or say $p.directory; or say $p.dir
say $p.getext; or say $p.extension
say $p.getbasename; # returns the filename without directory
say $p.getjustname; # returns the filename without directory and extension
Above also work without get. say $p.print; # prints all components say $p.separator; # returns the separator found in the path, it can be "\" or "/" or "". say $p.fsseparator; # returns Windows or Unix-like file separator depending where you run your script say $p.getnumberofdirlevel; # number of levels in the directory say $p.getdirlevel(2); # returns directory up to the second level say $p.tocygwin(); # returns the cygwin format of a Windows path, nothing happens if it is of other kind.
e.g. /cygdrive/d/music/after.mp4 say $p.tomsys(); # returns the msysformat of a Windows path, nothing happens if it is of other kind.
e.g. /d/music/after.mp4 Also, it is possible to use them non-object oriented way. say Path::Util.getbasename("d:\\docs\\usage.txt"); Extension is returned without dot. Directories are returned without ending separator.