aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-04-11 15:47:02 +0200
committerLuca Ferrari <fluca1978@gmail.com>2022-04-11 15:47:02 +0200
commita4c1ac2079615cfbde185b2b7ea95f4ee9c69774 (patch)
treeebccc94f1a2b805ad84dea66230a9dab789094f9
parentdd4ac83b62cc53b2088a7a924325c7fcc5541794 (diff)
downloadperlweeklychallenge-club-a4c1ac2079615cfbde185b2b7ea95f4ee9c69774.tar.gz
perlweeklychallenge-club-a4c1ac2079615cfbde185b2b7ea95f4ee9c69774.tar.bz2
perlweeklychallenge-club-a4c1ac2079615cfbde185b2b7ea95f4ee9c69774.zip
Task 1 PLPERL
-rw-r--r--challenge-160/luca-ferrari/postgresql/ch-1.plperl45
1 files changed, 45 insertions, 0 deletions
diff --git a/challenge-160/luca-ferrari/postgresql/ch-1.plperl b/challenge-160/luca-ferrari/postgresql/ch-1.plperl
new file mode 100644
index 0000000000..5cf81de25e
--- /dev/null
+++ b/challenge-160/luca-ferrari/postgresql/ch-1.plperl
@@ -0,0 +1,45 @@
+-- Perl Weekly Challenge 160
+CREATE SCHEMA IF NOT EXISTS pwc160;
+CREATE SCHEMA IF NOT EXISTS pwc160;
+
+/**
+ testdb=> select pwc160.four_is_magic( 7 );
+ four_is_magic
+---------------
+ Seven is 5
+ Five is 4
+ Four is magic
+*/
+CREATE OR REPLACE FUNCTION
+pwc160.four_is_magic( int )
+RETURNS SETOF text
+AS $CODE$
+
+my $words = {
+ 1 => 'One',
+ 2 => 'Two',
+ 3 => 'Three',
+ 4 => 'Four',
+ 5 => 'Five',
+ 6 => 'Six',
+ 7 => 'Seven',
+ 8 => 'Eight',
+ 9 => 'Nine',
+};
+
+
+my $stop = 4;
+my ( $current ) = @_;
+
+while ( $current != $stop ) {
+ my $word = $words->{ $current };
+ my $size = length $word;
+ $current = $size;
+
+ return_next( "$word is $size" );
+}
+
+return_next( $words->{ $stop } . " is magic" );
+return undef;
+$CODE$
+LANGUAGE plperl;