aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-04-18 20:44:19 +0100
committerGitHub <noreply@github.com>2025-04-18 20:44:19 +0100
commit7e987426212cfb8653e30718ea3a0f97fb864a5f (patch)
tree2c2e2bd7b2b9366a207d2656ddc7e3249d6710b2
parent2aa8dbcec35ce2a86666be0840fb8a767d21656c (diff)
parent3c25ec43d1388d341c721a1d350adfc3146257a2 (diff)
downloadperlweeklychallenge-club-7e987426212cfb8653e30718ea3a0f97fb864a5f.tar.gz
perlweeklychallenge-club-7e987426212cfb8653e30718ea3a0f97fb864a5f.tar.bz2
perlweeklychallenge-club-7e987426212cfb8653e30718ea3a0f97fb864a5f.zip
Merge pull request #11894 from kjetillll/challenge-316-kjetillll
https://theweeklychallenge.org/blog/perl-weekly-challenge-316/
-rw-r--r--challenge-316/kjetillll/perl/ch-1.pl7
-rw-r--r--challenge-316/kjetillll/perl/ch-2.pl19
2 files changed, 26 insertions, 0 deletions
diff --git a/challenge-316/kjetillll/perl/ch-1.pl b/challenge-316/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..cd70fcb616
--- /dev/null
+++ b/challenge-316/kjetillll/perl/ch-1.pl
@@ -0,0 +1,7 @@
+sub f { "@_" !~ /(.) (?!\1)/ }
+
+print f("perl", "loves", "scala") ? "ok\n" : "error\n"; # true
+print ! f("love", "the", "programming") ? "ok\n" : "error\n"; # false
+print f("java", "awk", "kotlin", "node.js") ? "ok\n" : "error\n"; # true
+print f("ISI","I","IJK","KAREN") ? "ok\n" : "error\n"; # true
+print ! f("ISI","I","KJK","KAREN") ? "ok\n" : "error\n"; # false
diff --git a/challenge-316/kjetillll/perl/ch-2.pl b/challenge-316/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..22c9aee3f6
--- /dev/null
+++ b/challenge-316/kjetillll/perl/ch-2.pl
@@ -0,0 +1,19 @@
+#Makes a regexp out of the first string by putting .* behind each char
+#and match that against the second input string.
+
+sub f { pop =~ m|@{[ pop =~ s/./\Q$&\E.*/gr ]}| }
+
+print f( "uvw", "bcudvew" ) ? "ok\n" : "error\n"; # true
+print ! f( "aec", "abcde" ) ? "ok\n" : "error\n"; # false
+print f( "sip", "javascript" ) ? "ok\n" : "error\n"; # true
+print ! f( "ae.", "abcdef" ) ? "ok\n" : "error\n"; # false
+print f( "ae.", "abcde.f" ) ? "ok\n" : "error\n"; # false
+print f( "ae.x(", "abcdef.kx(+" ) ? "ok\n" : "error\n"; # false
+
+#regexp allergy?
+sub f2 {
+ my @substr = split//, shift;
+ my @str = split//, shift;
+ $_ eq $substr[0] and shift @substr for @str;
+ !@substr
+}