home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl_ste.zip / auto / URI / URL / file / unix_path.al < prev    next >
Text File  |  1997-11-28  |  676b  |  26 lines

  1. # NOTE: Derived from ./blib/lib/URI/URL/file.pm.  Changes made here will be lost.
  2. package URI::URL::file;
  3.  
  4. sub unix_path
  5. {
  6.     my $self = shift;
  7.     my @p;
  8.     for ($self->path_components) {
  9.     Carp::croak("Path component contains '/' or '\0'") if m|[\0/]|;
  10.     if (@p) {
  11.         next unless length $_;   # skip empty path segments
  12.         next if $_ eq '.';       # skip these too
  13.         if ($_ eq '..' && $p[-1] ne '..') {  # go up one level
  14.         pop(@p) if $p[-1] ne '';
  15.         next;
  16.         }
  17.     }
  18.     push(@p, $_);
  19.     }
  20.     shift(@p) if @p > 1 && $p[0] eq '.';   # './' rendundant if there is more
  21.     return '/' if !@p || (@p == 1 && $p[0] eq '');
  22.     join('/', @p);
  23. }
  24.  
  25. 1;
  26.