diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-13 08:30:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-13 08:30:38 +0100 |
| commit | d450fc4537e2900f7f9888c63853c3ba5952f221 (patch) | |
| tree | 10058392dd955b563ba4a8b353e72aa8269aa219 | |
| parent | e3a0bfbe150f42b7f1be28ad681e411a7fce7565 (diff) | |
| parent | e0502c74dfd41988164c284290e86afca6d8c6ad (diff) | |
| download | perlweeklychallenge-club-d450fc4537e2900f7f9888c63853c3ba5952f221.tar.gz perlweeklychallenge-club-d450fc4537e2900f7f9888c63853c3ba5952f221.tar.bz2 perlweeklychallenge-club-d450fc4537e2900f7f9888c63853c3ba5952f221.zip | |
Merge pull request #4071 from kurkale6ka/ch_112
Solution 1 to challenge 112
| -rw-r--r-- | challenge-112/kurkale6ka/README | 1 | ||||
| -rw-r--r-- | challenge-112/kurkale6ka/perl/ch-1.pl | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/challenge-112/kurkale6ka/README b/challenge-112/kurkale6ka/README new file mode 100644 index 0000000000..5760886ad3 --- /dev/null +++ b/challenge-112/kurkale6ka/README @@ -0,0 +1 @@ +Solution by kurkale6ka diff --git a/challenge-112/kurkale6ka/perl/ch-1.pl b/challenge-112/kurkale6ka/perl/ch-1.pl new file mode 100644 index 0000000000..9e5d37f74d --- /dev/null +++ b/challenge-112/kurkale6ka/perl/ch-1.pl @@ -0,0 +1,21 @@ +#! /usr/bin/env perl + +# Canonical UNIX path +# +# one-liner versions: +# -E'$_=pop;s#/\.?(?=(/|$))##g;1while s#/([^/]+/)?\Q..##;say$_||"/"' +# -E'$_=pop;s#/\.?(?=(/|$))##g;{s#/([^/]+/)?\Q..##&&redo}say$_||"/"' + +use v5.22; +use warnings; + +$_ = shift; + +# squeeze /s + remove final ones and get rid of /./ +s#/\.?(?=(/|$))##gn; + +# discard /dir/.. occurrences from path +1 while s#/([^/]+/)?\Q..##n; +# { redo if s#/([^/]+/)?\Q..##n } + +say $_||'/' |
