exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs

commit 6d35f295d07ae45ffee206fdb6eae031aa21b15a
parent 8fb151b0d6771a9ad2bfdf82886c6b874aec288f
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Fri, 17 Dec 2021 16:28:21 +0000

complete KindergartenGarden.pm to provide working solution

Diffstat:
Mkindergarten-garden/KindergartenGarden.pm | 18+++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/kindergarten-garden/KindergartenGarden.pm b/kindergarten-garden/KindergartenGarden.pm @@ -2,11 +2,27 @@ package KindergartenGarden; use strict; use warnings; use Exporter qw<import>; +use Data::Dumper; our @EXPORT_OK = qw<plants>; sub plants { + # $input is a reference to a hash with two keys: diagram and student + # both diagram and student are scalar strings my ($input) = @_; - return undef; + my $diagram = $input->{diagram}; + my $student = $input->{student}; + my @rows = split /\n/, $diagram; + my @children = qw( Alice Bob Charlie David Eve Fred Ginny Harriet Ileana Joseph Kincaid Larry); + my @positions = map { $_ * 2 } (0 .. scalar(@children) - 1); + my %child_pos; + @child_pos{ @children } = @positions; # hash slice + my %plants = qw( G grass C clover R radishes V violets); + my @student_plants; + foreach (@rows) { + push @student_plants, $plants{substr($_, $child_pos{$student}, 1)}; + push @student_plants, $plants{substr($_, $child_pos{$student} + 1, 1)}; + } + return \@student_plants; } 1;