|
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> |
|