aboutsummaryrefslogtreecommitdiff
path: root/challenge-036
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2019-12-01 18:11:28 -0500
committerJaldhar H. Vyas <jaldhar@braincells.com>2019-12-01 18:11:28 -0500
commit46d2a0c2e7e0867b999b5cb434f89afcc1c975bb (patch)
tree4e10a4f9ef38e2833215c4fabf3051a29ca41623 /challenge-036
parent40fef95940d44099adc8dd0fee4dda1e461c6842 (diff)
downloadperlweeklychallenge-club-46d2a0c2e7e0867b999b5cb434f89afcc1c975bb.tar.gz
perlweeklychallenge-club-46d2a0c2e7e0867b999b5cb434f89afcc1c975bb.tar.bz2
perlweeklychallenge-club-46d2a0c2e7e0867b999b5cb434f89afcc1c975bb.zip
Challenge 36 part 1 by Jaldhar H. Vyas
Diffstat (limited to 'challenge-036')
-rwxr-xr-xchallenge-036/jaldhar-h-vyas/perl/ch-1.pl24
-rwxr-xr-xchallenge-036/jaldhar-h-vyas/raku/ch-1.p623
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-036/jaldhar-h-vyas/perl/ch-1.pl b/challenge-036/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..ba043ee955
--- /dev/null
+++ b/challenge-036/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use 5.010;
+
+sub validateVIN {
+ my ($vin) = @_;
+
+ if (length $vin != 17) {
+ return undef;
+ }
+
+ if ($vin !~ /^
+ [[:alnum:]]{3} # World Manufacturer Identifier
+ [[:alnum:]]{6} # Vehicle Descriptor Section
+ [[:alnum:]]{8} # Vehicle Identifier Section
+ $/msx) {
+ return undef;
+ }
+
+ return 1;
+}
+
+say (validateVIN(shift // q{}) ? 'VALID' : 'INVALID');
diff --git a/challenge-036/jaldhar-h-vyas/raku/ch-1.p6 b/challenge-036/jaldhar-h-vyas/raku/ch-1.p6
new file mode 100755
index 0000000000..ee267965ec
--- /dev/null
+++ b/challenge-036/jaldhar-h-vyas/raku/ch-1.p6
@@ -0,0 +1,23 @@
+#!/usr/bin/perl6
+
+sub validateVIN(Str $vin) {
+
+ if ($vin.chars != 17) {
+ return False;
+ }
+
+ if $vin !~~ /^
+ <alnum> ** 3 # World Manufacturer Identifier
+ <alnum> ** 6 # Vehicle Descriptor Section
+ <alnum> ** 8 # Vehicle Identifier Section
+ $/ {
+ return False;
+ }
+
+ return True;
+}
+
+multi sub MAIN(Str $vin) {
+
+ say (validateVIN($vin) ?? 'VALID' !! 'INVALID');
+}