aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-07-07 16:13:46 +0100
committerGitHub <noreply@github.com>2021-07-07 16:13:46 +0100
commita84527a22d0721198d02a9798bbcf9baec3dbf68 (patch)
treed6a3c0059e184515b4363568653fa86cee951644
parentd2d2812e9077bb1e4295480d789370fb169e95c0 (diff)
parent0a97cb0ff5d0f1e75c02bf7d96b12cec704b0299 (diff)
downloadperlweeklychallenge-club-a84527a22d0721198d02a9798bbcf9baec3dbf68.tar.gz
perlweeklychallenge-club-a84527a22d0721198d02a9798bbcf9baec3dbf68.tar.bz2
perlweeklychallenge-club-a84527a22d0721198d02a9798bbcf9baec3dbf68.zip
Merge pull request #4455 from wlmb/challenges
Challenges
-rw-r--r--challenge-120/wlmb/blog.txt1
-rwxr-xr-xchallenge-120/wlmb/perl/ch-1.pl15
-rwxr-xr-xchallenge-120/wlmb/perl/ch-2.pl17
3 files changed, 33 insertions, 0 deletions
diff --git a/challenge-120/wlmb/blog.txt b/challenge-120/wlmb/blog.txt
new file mode 100644
index 0000000000..4d68823f77
--- /dev/null
+++ b/challenge-120/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2021/07/07/PWC120/
diff --git a/challenge-120/wlmb/perl/ch-1.pl b/challenge-120/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..e8a1b5f28b
--- /dev/null
+++ b/challenge-120/wlmb/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 120
+# Task 1: Swap odd/even bits
+#
+# See https://wlmb.github.io/2021/07/07/PWC120/#task-1-swap-oddeven-bits
+use strict;
+use warnings;
+use v5.12;
+use List::Util qw(all);
+my $odd=170; # 10101010
+my $even=85; # 01010101
+
+say "Input: $_, Output: ",
+ 0<=$_<=255?((($_&$odd)>>1) |(($_&$even)<<1)):"Invalid"
+ for @ARGV;
diff --git a/challenge-120/wlmb/perl/ch-2.pl b/challenge-120/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..7c71c473e2
--- /dev/null
+++ b/challenge-120/wlmb/perl/ch-2.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 120
+# Task 2: Clock angle
+#
+# See https://wlmb.github.io/2021/07/07/PWC120/#task-2-clock-angle
+use strict;
+use warnings;
+use v5.12;
+
+for(@ARGV){
+ say "Wrong format: $_", next
+ unless $_=~m/^(\d?\d):(\d\d)$/
+ && 0<=$1<=24 && 0<=$1<60; # <24?
+ my $angle=(30*($1+$2/60)-$2*6)%360;
+ $angle=360-$angle if $angle>180;
+ say "Input: $_, Output: $angle";
+}