이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 43.4. pl/스포츠 토토 결과의 글로벌 값버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

42.4. PL/Perl의 전역 값

글로벌 해시를 사용할 수 있습니다.%_SHARED에 함수 호출 사이에 코드 참조를 포함한 데이터 저장 현재 세션의 수명입니다.

다음은 공유 데이터에 대한 간단한 예입니다.

함수 생성 또는 교체 set_var(이름 텍스트, 값 텍스트) 텍스트를 $$로 반환합니다.
    if ($_SHARED$_[0] = $_[1]) 
        '확인'을 반환합니다.
     그렇지 않으면 
        return "공유 변수 $_[0]을 $_[1]로 설정할 수 없습니다.";

다음은 코드를 사용한 약간 더 복잡한 예입니다. 참조:

함수 생성 또는 교체 myfuncs()는 $$로 무효를 반환합니다.
    $_SHAREDmyquote = 하위 
        내 $arg = 교대;
        $arg =~ s/(['\\])/\\$1/g;
        "'$arg'"를 반환합니다.
    ;
$$ 언어 plperl;

SELECT myfuncs(); /* 함수를 초기화합니다 */

/* 인용 기능을 사용하는 함수 설정 */

함수 만들기 또는 바꾸기 use_quote(TEXT) 텍스트를 $$로 반환합니다.
    내 $text_to_quote = 이동;
    내 $qfunc = $_SHAREDmyquote;
    return &$qfunc($text_to_quote);
$$ 언어 plperl;

(위 내용을 한 줄로 대체할 수도 있었습니다.$_SHARED내 인용문-($_[0]) 반환;비용으로 가독성.)

보안상의 이유로 PL/Perl은 다음에서 호출되는 함수를 실행합니다. 해당 역할에 대한 별도의 Perl 인터프리터에 하나의 SQL 역할이 있습니다. 이 한 사용자가 우발적이거나 악의적으로 간섭하는 것을 방지합니다. 다른 사용자의 PL/Perl 기능 동작. 각 통역사 자체 값이 있습니다.%_SHARED변수 그리고 다른 글로벌 상태. 따라서 두 개의 PL/Perl 함수는 동일한 값%_SHARED만약 그들이 동일한 SQL 역할에 의해 실행됩니다. 응용 프로그램에서 단일 세션은 여러 SQL 역할에서 코드를 실행합니다(via보안 정의자함수, 사용역할 설정등)을 수행해야 할 수도 있습니다. PL/Perl 함수가 다음을 통해 데이터를 공유할 수 있도록 보장하는 명시적인 단계%_SHARED. 그렇게 하려면 다음 사항을 확인하세요. 통신해야 하는 기능은 동일한 사용자가 소유하고 있으며, 표시해 두세요보안 정의자. 당신은 물론 그러한 기능을 사용하여 아무 것도 할 수 없도록 주의하세요 의도하지 않은.