Skip to content

Instantly share code, notes, and snippets.

@mattn
Last active August 29, 2015 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattn/10117002 to your computer and use it in GitHub Desktop.
Save mattn/10117002 to your computer and use it in GitHub Desktop.
use strict;
use warnings;
sub canonpath {
my $path = shift;
my @ret = ();
for my $tok (split(/\/+/, $path)) {
next if $tok eq '.';
if ($tok eq '..') {
pop @ret;
next;
}
push @ret, $tok if $tok;
}
'/' . join '/', @ret
}
warn canonpath('/var/tmp/./foo/../bar/..');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment