From 01550da275d58a35ad897ba852e234d35a781b2c Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Sun, 27 Oct 2019 07:46:30 +1000 Subject: Added ch1 p5 and p6 --- challenge-031/ruben-westerberg/README | 5 ++--- challenge-031/ruben-westerberg/perl5/ch-1.pl | 8 ++++++++ challenge-031/ruben-westerberg/perl6/ch-1.p6 | 11 +++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 challenge-031/ruben-westerberg/perl5/ch-1.pl create mode 100755 challenge-031/ruben-westerberg/perl6/ch-1.p6 diff --git a/challenge-031/ruben-westerberg/README b/challenge-031/ruben-westerberg/README index 078e072f1a..a14127bd20 100644 --- a/challenge-031/ruben-westerberg/README +++ b/challenge-031/ruben-westerberg/README @@ -2,9 +2,8 @@ Solution by Ruben Westerberg ch-1.pl and ch-1.p6 === -Run program to display all Sunday Xmas dates between years 2019 and 2100 - +Run the program with two command line arguments. First is the numerator, second is the denominator. Output will print successful result unless a divide by zero is detected. ch-2.pl and ch-2.p6 === -Run program to find all combinations of 3 number sequence which add to 12 and have at least 1 even number + diff --git a/challenge-031/ruben-westerberg/perl5/ch-1.pl b/challenge-031/ruben-westerberg/perl5/ch-1.pl new file mode 100755 index 0000000000..6996d7c22b --- /dev/null +++ b/challenge-031/ruben-westerberg/perl5/ch-1.pl @@ -0,0 +1,8 @@ +#!/usr/bin/env perl +use feature qw; +my $numerator=$ARGV[0]//1; +my $denominator=$ARGV[1]//0; +my $result=eval {$numerator/$denominator}; +say "Division ok: $numerator/$denominator = $result" if defined $result; +say "Division failed: divide by zero" if !defined $result; + diff --git a/challenge-031/ruben-westerberg/perl6/ch-1.p6 b/challenge-031/ruben-westerberg/perl6/ch-1.p6 new file mode 100755 index 0000000000..a1410d6256 --- /dev/null +++ b/challenge-031/ruben-westerberg/perl6/ch-1.p6 @@ -0,0 +1,11 @@ +#!/usr/bin/env perl6 + +my $numerator=@*ARGS[0]//1; +my $denominator=@*ARGS[1]//0; +my $result; + +try $result=($numerator/$denominator).Str; + +put "Division ok: $numerator/$denominator = $result" unless $!; +put "Division failed: Divide by zero" if $!; + -- cgit From 723dc42abf1d6a546f2820abc141ba81609a1c4c Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Sun, 27 Oct 2019 08:10:30 +1000 Subject: Added ch-2.pl --- challenge-031/ruben-westerberg/perl5/ch-2.pl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 challenge-031/ruben-westerberg/perl5/ch-2.pl diff --git a/challenge-031/ruben-westerberg/perl5/ch-2.pl b/challenge-031/ruben-westerberg/perl5/ch-2.pl new file mode 100755 index 0000000000..4d3b199d42 --- /dev/null +++ b/challenge-031/ruben-westerberg/perl5/ch-2.pl @@ -0,0 +1,18 @@ +#!/usr/bin/env perl +use feature qw; +my $name=$ARGV[0]// "var".rand; +my $value=$ARGV[1]//rand; + +{ + say "Using symbolic refs"; + no strict refs; + $$name=$value; + say "Variable name: $name Value: ${$name}"; +} +print "\n"; +{ + say "Using a hash"; + my %h; + $h{$name}=$value; + say "Variable name: $name Value: $h{$name}"; +} -- cgit From ed9a2f7fe33721940df37fd8b4b9e625558030eb Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Sun, 27 Oct 2019 08:37:13 +1000 Subject: Added ch-2.p6 --- challenge-031/ruben-westerberg/perl6/ch-2.p6 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 challenge-031/ruben-westerberg/perl6/ch-2.p6 diff --git a/challenge-031/ruben-westerberg/perl6/ch-2.p6 b/challenge-031/ruben-westerberg/perl6/ch-2.p6 new file mode 100755 index 0000000000..61bfdceee6 --- /dev/null +++ b/challenge-031/ruben-westerberg/perl6/ch-2.p6 @@ -0,0 +1,22 @@ +#!/usr/bin/env perl6 +use MONKEY-SEE-NO-EVAL; +my $name=@*ARGS[0]//"\$var"~1000.Int; +my $value=@*ARGS[1]//1.rand; +{ + put "Using Module/eval"; + module D { + EVAL "our \$$name=\"$value\""; + } + put $D::($name); + put "Variable name: $name Value: {$D::($name)}"; +} + +put ""; + +{ + put "Using Hash"; + my %h; + %h{$name}=$value; + put "Variable name: $name Value: %h{$name}"; + +} -- cgit From b90c723afa938b99f2af9aa5254745ea8efcef3b Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Sun, 27 Oct 2019 08:39:33 +1000 Subject: Fixed default variable name error --- challenge-031/ruben-westerberg/README | 5 ++++- challenge-031/ruben-westerberg/perl6/ch-2.p6 | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/challenge-031/ruben-westerberg/README b/challenge-031/ruben-westerberg/README index a14127bd20..2ca4621c32 100644 --- a/challenge-031/ruben-westerberg/README +++ b/challenge-031/ruben-westerberg/README @@ -3,7 +3,10 @@ Solution by Ruben Westerberg ch-1.pl and ch-1.p6 === Run the program with two command line arguments. First is the numerator, second is the denominator. Output will print successful result unless a divide by zero is detected. +If no arguments are provided numerator is set to 1 and denominator is set to 0 ch-2.pl and ch-2.p6 === - +Run the program with two arguments. The first is the name of ther variable to create and the second is the value to assign. +Output is the name and value of the dynamicaly named variable +If no arguments are given a random name and value are created; diff --git a/challenge-031/ruben-westerberg/perl6/ch-2.p6 b/challenge-031/ruben-westerberg/perl6/ch-2.p6 index 61bfdceee6..f4ea55d641 100755 --- a/challenge-031/ruben-westerberg/perl6/ch-2.p6 +++ b/challenge-031/ruben-westerberg/perl6/ch-2.p6 @@ -1,6 +1,6 @@ #!/usr/bin/env perl6 use MONKEY-SEE-NO-EVAL; -my $name=@*ARGS[0]//"\$var"~1000.Int; +my $name=@*ARGS[0]//"var"~1000.rand.Int; my $value=@*ARGS[1]//1.rand; { put "Using Module/eval"; -- cgit