aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-030/vyacheslav-volgarev/perl5/ch-1.pl17
-rw-r--r--challenge-030/vyacheslav-volgarev/perl5/ch-2.pl9
2 files changed, 19 insertions, 7 deletions
diff --git a/challenge-030/vyacheslav-volgarev/perl5/ch-1.pl b/challenge-030/vyacheslav-volgarev/perl5/ch-1.pl
index c677a4a685..f4b08d9167 100644
--- a/challenge-030/vyacheslav-volgarev/perl5/ch-1.pl
+++ b/challenge-030/vyacheslav-volgarev/perl5/ch-1.pl
@@ -1,14 +1,23 @@
+#!/usr/bin/env perl
+
use strict;
use warnings;
use v5.10;
use constant {
- Sunday => 0,
- Wednesday => 3
+ SUNDAY => 0,
+ WEDNESDAY => 3
};
-my $day = Wednesday;
+my $day = WEDNESDAY;
+
+sub is_not_leap_year {
+ my $year = shift;
+ $year % 4 != 0 || ( $year % 100 == 0 && $year % 400 != 0 );
+}
for ( 2020.. 2100 ) {
- say "25 Dec $_ is Sunday" if ( $day += $_ % 4 != 0 || ($_ % 100 == 0 && $_ % 400 != 0) ? 1 : 2 ) % 7 == Sunday;
+ $day += is_not_leap_year( $_ ) ? 1 : 2;
+ $day %= 7;
+ say "25 Dec $_ is Sunday" if $day == SUNDAY;
}
diff --git a/challenge-030/vyacheslav-volgarev/perl5/ch-2.pl b/challenge-030/vyacheslav-volgarev/perl5/ch-2.pl
index 978846d43a..5fc17c7efa 100644
--- a/challenge-030/vyacheslav-volgarev/perl5/ch-2.pl
+++ b/challenge-030/vyacheslav-volgarev/perl5/ch-2.pl
@@ -1,6 +1,9 @@
+#!/usr/bin/env perl
+
use strict;
use warnings;
use v5.10;
+use List::Util qw( uniqstr );
my @numbers;
@@ -8,9 +11,9 @@ for my $first ( 1..10 ) {
for my $second (1..10) {
my $third = 12 - $first - $second;
- push @numbers, join ", ", sort ( $first, $second, $third ) if $third > 0;
+ push @numbers, join ", ", sort { $a <=> $b } ( $first, $second, $third ) if $third > 0;
}
}
-my %uniq;
+
$, = ";\n";
-say sort grep !$uniq{$_}++, @numbers;
+say uniqstr @numbers;