The enclose patch clarifies and makes a more useful example for the
authorBruce Momjian
Wed, 18 Aug 2004 03:37:56 +0000 (03:37 +0000)
committerBruce Momjian
Wed, 18 Aug 2004 03:37:56 +0000 (03:37 +0000)
Global Values in PL/Perl section of the documents.

David Fetter

doc/src/sgml/plperl.sgml

index cc24755615a7b395aafccc4468bb281705d7694c..4080a80b7efe5ab48d546a2ef655697a66bee6b6 100644 (file)
@@ -1,5 +1,5 @@
 
 
  
@@ -317,23 +317,25 @@ $$  LANGUAGE plperl;
  
   Global Values in PL/Perl
   
-  You can use the %_SHARED to store data between function calls.  WHY
-IS THIS A HASH, AND NOT A HASH REF?
+  You can use the %_SHARED to store data between function calls.
   
   
 For example:
 
-CREATE OR REPLACE FUNCTION set_var(TEXT) RETURNS TEXT AS $$
-    $_SHARED{first} = 'Hello, PL/Perl!';
-    return 'ok';
+CREATE OR REPLACE FUNCTION set_var(name TEXT, val TEXT) RETURNS TEXT AS $$
+    if ($_SHARED{$_[0]} = $_[1]) {
+        return 'ok';
+    } else {
+        return "Can't set shared variable $_[0] to $_[1]";
+    }
 $$ LANGUAGE plperl;
 
-CREATE OR REPLACE FUNCTION get_var() RETURNS text AS $$
-    return $_SHARED{first};
+CREATE OR REPLACE FUNCTION get_var(name TEXT) RETURNS text AS $$
+    return $_SHARED{$_[0]};
 $$ LANGUAGE plperl;
 
-SELECT set_var('hello plperl');
-SELECT get_var();
+SELECT set_var('sample', $q$Hello, PL/Perl!  How's tricks?$q$);
+SELECT get_var('sample');