aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-08-19 13:23:04 +0100
committerGitHub <noreply@github.com>2024-08-19 13:23:04 +0100
commitdec8a0aee2736864989365e5ac81295527418d0a (patch)
treec9a7cfa9f0c45a63f30e895629a88ee516582d1e
parent55d25c2a77bd59d430ed8ca7844b560f803f0d42 (diff)
parent6e373127a7c1bc8cc7ac4c0be0e43452ef1264fa (diff)
downloadperlweeklychallenge-club-dec8a0aee2736864989365e5ac81295527418d0a.tar.gz
perlweeklychallenge-club-dec8a0aee2736864989365e5ac81295527418d0a.tar.bz2
perlweeklychallenge-club-dec8a0aee2736864989365e5ac81295527418d0a.zip
Merge pull request #10654 from kjetillll/challenge-283-kjetillll
https://theweeklychallenge.org/blog/perl-weekly-challenge-283/
-rw-r--r--challenge-283/kjetillll/perl/ch-1.pl14
-rw-r--r--challenge-283/kjetillll/perl/ch-2.pl14
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-283/kjetillll/perl/ch-1.pl b/challenge-283/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..abbf5287d4
--- /dev/null
+++ b/challenge-283/kjetillll/perl/ch-1.pl
@@ -0,0 +1,14 @@
+use strict; use warnings; use Test::More tests=>5;
+
+sub once {
+ my %freq;
+ $freq{$_}++ for @_;
+ $freq{$_}==1 and return $_ for @_;
+ undef
+}
+
+is once( 3, 3, 1 ) => 1;
+is once( 3, 2, 4, 2, 4 ) => 3;
+is once( 1 ) => 1;
+is once( 4, 3, 1, 1, 1, 4 ) => 3;
+is once( (1..9) x 2 ) => undef;
diff --git a/challenge-283/kjetillll/perl/ch-2.pl b/challenge-283/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..487474eca6
--- /dev/null
+++ b/challenge-283/kjetillll/perl/ch-2.pl
@@ -0,0 +1,14 @@
+use strict; use warnings; use List::Util 'any'; use Test::More tests=>5;
+
+sub dcv {
+ my %freq;
+ $freq{$_}++ for @_;
+ not any { $_[$_] != ($freq{$_}//0) } 0 .. $#_;
+}
+
+my($true,$false)=(1,'');
+is dcv(1,2,1,0) => $true;
+is dcv(0,3,0) => $false;
+is dcv(2,1,2,0,0) => $true;
+is dcv(3,2,1,1,0,0,0) => $true;
+is dcv(5,2,1,0,0,1,0,0,0) => $true;