diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-13 11:40:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-13 11:40:12 +0100 |
| commit | 1ac9b132897be0a8ccaaee70b607585fefb95a0d (patch) | |
| tree | cfcf27d1adecf7870b0f0eac7aaea1a8dc39699c | |
| parent | 7da7f4e893712e0c672651aff5a9596a683662cf (diff) | |
| parent | 70db9ac456c0dd722354e93af0eec0fda0e58afc (diff) | |
| download | perlweeklychallenge-club-1ac9b132897be0a8ccaaee70b607585fefb95a0d.tar.gz perlweeklychallenge-club-1ac9b132897be0a8ccaaee70b607585fefb95a0d.tar.bz2 perlweeklychallenge-club-1ac9b132897be0a8ccaaee70b607585fefb95a0d.zip | |
Merge pull request #4076 from kurkale6ka/ch_112
Add human readable version
| -rw-r--r-- | challenge-112/kurkale6ka/perl/ch-1.pl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-112/kurkale6ka/perl/ch-1.pl b/challenge-112/kurkale6ka/perl/ch-1.pl index 9e5d37f74d..db35dea061 100644 --- a/challenge-112/kurkale6ka/perl/ch-1.pl +++ b/challenge-112/kurkale6ka/perl/ch-1.pl @@ -19,3 +19,25 @@ s#/\.?(?=(/|$))##gn; # { redo if s#/([^/]+/)?\Q..##n } say $_||'/' + +__END__ + +Human readable version without regexes + +# one-liner: +# -E'for(split/\//,pop){/^\.$/&&next;if(/^\.\.$/){pop@path}else{push@path,$_ if length}}say"/",join"/",@path' + +my @path; + +foreach (split m#/#, shift) +{ + next if $_ eq '.'; + + if ($_ eq '..') { + pop @path; + } else { + push @path, $_ if length; + } +} + +say '/', join '/', @path; |
