From 7f3f2e6d73f31a8e323c087718000de812ec23cd Mon Sep 17 00:00:00 2001 From: "Markus \"Holli\" Holzer" Date: Tue, 24 Mar 2020 00:24:16 +0100 Subject: cause why not --- challenge-053/markus-holzer/perl/ch-2.pl | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 challenge-053/markus-holzer/perl/ch-2.pl diff --git a/challenge-053/markus-holzer/perl/ch-2.pl b/challenge-053/markus-holzer/perl/ch-2.pl new file mode 100644 index 0000000000..f2973a3da7 --- /dev/null +++ b/challenge-053/markus-holzer/perl/ch-2.pl @@ -0,0 +1,39 @@ +use Modern::Perl; +use feature qw( signatures postderef switch ); +no warnings qw(experimental); + +my %rules = ( + a => [ 'e', 'i' ], + e => [ 'i' ], + i => [ 'a', 'e', 'o', 'u' ], + o => [ 'a', 'u' ], + u => [ 'e', 'o' ], +); + +main( shift @ARGV || 2 ); + +sub main( $n ) +{ + my @r; + + build_str( $_, $n, \@r ) + for ( sort keys %rules ); + + print join "\n", @r; +} + +sub build_str( $current, $n, $result ) +{ + my $last = substr( $current, -1 ); + + for ( $rules{ $last }->@* ) + { + given ( $current . $_ ) + { + push $result->@*, $_ and next + if length($_) == $n; + + build_str( $_, $n, $result ); + } + } +} \ No newline at end of file -- cgit From 14aff7ea13a77e3a2a9d151a8542f1230aa1dd91 Mon Sep 17 00:00:00 2001 From: "Markus \"Holli\" Holzer" Date: Tue, 24 Mar 2020 00:24:53 +0100 Subject: cause why not --- challenge-053/markus-holzer/perl/ch-2.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-053/markus-holzer/perl/ch-2.pl b/challenge-053/markus-holzer/perl/ch-2.pl index f2973a3da7..dac9652679 100644 --- a/challenge-053/markus-holzer/perl/ch-2.pl +++ b/challenge-053/markus-holzer/perl/ch-2.pl @@ -1,6 +1,6 @@ use Modern::Perl; use feature qw( signatures postderef switch ); -no warnings qw(experimental); +no warnings qw( experimental ); my %rules = ( a => [ 'e', 'i' ], -- cgit