aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-13 11:40:12 +0100
committerGitHub <noreply@github.com>2021-05-13 11:40:12 +0100
commit1ac9b132897be0a8ccaaee70b607585fefb95a0d (patch)
treecfcf27d1adecf7870b0f0eac7aaea1a8dc39699c
parent7da7f4e893712e0c672651aff5a9596a683662cf (diff)
parent70db9ac456c0dd722354e93af0eec0fda0e58afc (diff)
downloadperlweeklychallenge-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.pl22
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;