From 1f0a19c2638ced556ce1fc4a7f61383131c9a9e9 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 18 Aug 2004 03:37:56 +0000
Subject: [PATCH] The enclose patch clarifies and makes a more useful example
 for the Global Values in PL/Perl section of the documents.

David Fetter
---
 doc/src/sgml/plperl.sgml | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/doc/src/sgml/plperl.sgml b/doc/src/sgml/plperl.sgml
index cc24755615a..4080a80b7ef 100644
--- a/doc/src/sgml/plperl.sgml
+++ b/doc/src/sgml/plperl.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.26 2004/07/21 20:44:52 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.27 2004/08/18 03:37:56 momjian Exp $
 -->
 
  <chapter id="plperl">
@@ -317,23 +317,25 @@ $$  LANGUAGE plperl;
  <sect1 id="plperl-global">
   <title>Global Values in PL/Perl</title>
   <para>
-  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.
   </para>
   <para>
 For example:
 <programlisting>
-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');
 </programlisting>
 
   </para>
-- 
GitLab