¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

41.4. PL/Perl�ˤ����륰�����Х����

���ߤΥ��å�����ͭ��������δؿ��ƤӽФ��֤ǥǡ����ʥ����ɻ��Ȥ�ޤ�ˤ�����Ϥ����뤿��˥������Х��%_SHARED�ϥå������Ѥ��뤳�Ȥ��Ǥ��ޤ���

�ǡ����ζ�ͭ�ˤĤ��ƴ�ñ�����ʲ��˼����ޤ���

CREATE OR REPLACE FUNCTION set_var(name text, val text) RETURNS text AS $$
    if ($_SHARED{$_[0]} = $_[1]) {
        return 'ok';
    } else {
        return "cannot set shared variable $_[0] to $_[1]";
    }
$$ LANGUAGE plperl;

CREATE OR REPLACE FUNCTION get_var(name text) RETURNS text AS $$
    return $_SHARED{$_[0]};
$$ LANGUAGE plperl;

SELECT set_var('sample', 'Hello, PL/Perl!  How''s tricks?');
SELECT get_var('sample');

�ʲ��ϡ������ɻ��Ȥ���Ѥ�����¿��ʣ������Ǥ���

CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$
    $_SHARED{myquote} = sub {
        my $arg = shift;
        $arg =~ s/(['\\])/\\$1/g;
        return "'$arg'";
    };
$$ LANGUAGE plperl;

SELECT myfuncs(); /* �ؿ��ν���� */

/* ������ؿ�����Ѥ���ؿ������ */

CREATE OR REPLACE FUNCTION use_quote(TEXT) RETURNS text AS $$
    my $text_to_quote = shift;
    my $qfunc = $_SHARED{myquote};
    return &$qfunc($text_to_quote);
$$ LANGUAGE plperl;

�ʲ����������ˤ���ȡ����return $_SHARED{myquote}->($_[0]);�Ȥ���1�ԤΤߤ��֤������뤳�Ȥ��Ǥ��ޤ�����

�������ƥ������ͳ�ˤ�ꡢPL/Perl�ϡ����������ǸƤӽФ��줿�ؿ��򤽤Υ������Ѥ���Ω����Perl���󥿥ץ꥿��Ǽ¹Ԥ��ޤ��� ����ˤ�ꡢ����桼���λ��Τޤ��ϰ��դˤ�ä�¾�Υ桼����PL/Perl�ؿ���ư����Ĥ���Ƥ��ޤ����Ȥ��ɤ��ޤ��� �����������󥿥ץ꥿�Ϥ��줾���ȼ���%_SHARED�ʤɤΥ������Х���֤�����ޤ��� �������äơ�Ʊ���SQL������ˤ�äƼ¹Ԥ��줿���Τߡ����Ĥ�PL/Perl�ؿ���Ʊ��%_SHARED�ͤ�ͭ���ޤ��� ���ĤΥ��å�������ʣ����SQL������θ��ǥ����ɤ��SECURITY DEFINER��ͳ��SET ROLE�λ��Ѥʤɡ˼¹Ԥ��륢�ץꥱ�������Ǥϡ��μ¤�PL/Perl�ؿ���%_SHARED��𤷤ƥǡ�����ͭ���뤳�Ȥ��Ǥ���褦�ˡ�����Ū�ʽ�����Ԥ�ɬ�פ�����ޤ��� ���Τ���ˤϡ��̿����ʤ���Фʤ�ʤ��ؿ���Ʊ���桼���ˤ�äƽ�ͭ����뤳�ȡ������SECURITY DEFINER�Ȱ��դ����Ƥ��뤳�Ȥ�μ¤ˤ��ʤ���Фʤ�ޤ��� �����ʤ��餳�������ؿ����տޤ��Ƥ��ʤ����Ȥ�Ԥ�����˻��Ѥ��뤳�Ȥ��Ǥ��ʤ��褦�����դ��ʤ���Фʤ�ޤ���