aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-07-07 16:17:09 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-07-07 16:17:09 +0100
commit49acad3036ab55f65cc9df79e59ed04abde561b5 (patch)
treeddefa845b9fab7cca9e26c7560c0a62feab7a049
parente0ca2d02fcdce2621ef33bb458481a2a3c748ffd (diff)
parenta84527a22d0721198d02a9798bbcf9baec3dbf68 (diff)
downloadperlweeklychallenge-club-49acad3036ab55f65cc9df79e59ed04abde561b5.tar.gz
perlweeklychallenge-club-49acad3036ab55f65cc9df79e59ed04abde561b5.tar.bz2
perlweeklychallenge-club-49acad3036ab55f65cc9df79e59ed04abde561b5.zip
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
-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";
+}