Repository-Simple
view release on metacpan or search on metacpan
lib/Repository/Simple/Util.pm view on Meta::CPAN
# Fix us up to an absolute path
my $abs_path;
if ($messy_path !~ m#^/#) {
$abs_path = "$current_path/$messy_path";
}
else {
$abs_path = $messy_path;
}
# Break into components
my @components = split m#/+#, $abs_path;
@components = ('', '') unless @components; # account for root
unshift @components, '' unless @components > 1;
# Manipulate the path components based upon each entry, work left-to-right
# to ensure proper handling of each component.
for (my $i = 1; $i < @components;) {
# Drop any "." components
if ($components[$i] eq '.') {
splice @components, $i, 1;
}
lib/Repository/Simple/Util.pm view on Meta::CPAN
=cut
sub dirname {
my $path = shift;
if ($path eq '/') {
return '/';
}
else {
my @components = split m{/}, $path;
pop @components;
push @components, '' if @components == 1;
return join '/', @components;
}
}
=item $basename = basename($path)
Given a normalized path, this method returns the last path element of the path. That is, it returns the last name in the path. If the root path ("/") is given, then the same is returned.
=cut
sub basename {
my $path = shift;
if ($path eq '/') {
return '/';
}
else {
my @components = split m{/}, $path;
return pop @components;
}
}
=back
=head1 AUTHOR
Andrew Sterling Hanenkamp, E<lt>hanenkamp@cpan.orgE<gt>
( run in 0.898 second using v1.01-cache-2.11-cpan-71847e10f99 )