|
1 | 1 | <!--
|
2 |
| -$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.26 2004/07/21 20:44:52 momjian Exp $ |
| 2 | +$PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.27 2004/08/18 03:37:56 momjian Exp $ |
3 | 3 | -->
|
4 | 4 |
|
5 | 5 | <chapter id="plperl">
|
@@ -317,23 +317,25 @@ $$ LANGUAGE plperl;
|
317 | 317 | <sect1 id="plperl-global">
|
318 | 318 | <title>Global Values in PL/Perl</title>
|
319 | 319 | <para>
|
320 |
| - You can use the %_SHARED to store data between function calls. WHY |
321 |
| -IS THIS A HASH, AND NOT A HASH REF? |
| 320 | + You can use the %_SHARED to store data between function calls. |
322 | 321 | </para>
|
323 | 322 | <para>
|
324 | 323 | For example:
|
325 | 324 | <programlisting>
|
326 |
| -CREATE OR REPLACE FUNCTION set_var(TEXT) RETURNS TEXT AS $$ |
327 |
| - $_SHARED{first} = 'Hello, PL/Perl!'; |
328 |
| - return 'ok'; |
| 325 | +CREATE OR REPLACE FUNCTION set_var(name TEXT, val TEXT) RETURNS TEXT AS $$ |
| 326 | + if ($_SHARED{$_[0]} = $_[1]) { |
| 327 | + return 'ok'; |
| 328 | + } else { |
| 329 | + return "Can't set shared variable $_[0] to $_[1]"; |
| 330 | + } |
329 | 331 | $$ LANGUAGE plperl;
|
330 | 332 |
|
331 |
| -CREATE OR REPLACE FUNCTION get_var() RETURNS text AS $$ |
332 |
| - return $_SHARED{first}; |
| 333 | +CREATE OR REPLACE FUNCTION get_var(name TEXT) RETURNS text AS $$ |
| 334 | + return $_SHARED{$_[0]}; |
333 | 335 | $$ LANGUAGE plperl;
|
334 | 336 |
|
335 |
| -SELECT set_var('hello plperl'); |
336 |
| -SELECT get_var(); |
| 337 | +SELECT set_var('sample', $q$Hello, PL/Perl! How's tricks?$q$); |
| 338 | +SELECT get_var('sample'); |
337 | 339 | </programlisting>
|
338 | 340 |
|
339 | 341 | </para>
|
|