글로벌 해시를 사용할 수 있습니다.%_SHARED함수 호출 사이에 코드 참조를 포함한 데이터 저장 현재 세션의 수명 동안.
다음은 공유 데이터에 대한 간단한 예입니다:
함수 생성 또는 교체 set_var(이름 텍스트, 값 텍스트) 텍스트를 $$로 반환합니다.
if ($_SHARED$_[0] = $_[1])
'확인'을 반환합니다.
그렇지 않으면
return "공유 변수 $_[0]을 $_[1]로 설정할 수 없습니다.";
다음은 코드를 사용한 약간 더 복잡한 예입니다. 참조:
함수 생성 또는 교체 myfuncs()는 $$로 무효를 반환합니다.
$_SHAREDmyquote = 하위
내 $arg = 교대;
$arg =~ s/(['\\])/\\$1/g;
"'$arg'"를 반환합니다.
;
$$ 언어 스포츠 토토 사이트perl;
SELECT myfuncs(); /* 함수를 초기화합니다 */
/* 인용 기능을 사용하는 함수 설정 */
함수 만들기 또는 바꾸기 use_quote(TEXT) 텍스트를 $$로 반환합니다.
내 $text_to_quote = 이동;
내 $qfunc = $_SHAREDmyquote;
return &$qfunc($text_to_quote);
$$ 언어 스포츠 토토 사이트perl;
(위 내용을 한 줄로 대체할 수도 있었습니다.$_SHAREDmyquote-($_[0]) 반환;에 가독성이 저하됩니다.)
보안상의 이유로 PL/Perl은 다음에서 호출되는 함수를 실행합니다. 해당 역할에 대한 별도의 Perl 인터프리터에 하나의 SQL 역할이 있습니다. 이 한 사용자의 우발적이거나 악의적인 간섭을 방지합니다. 다른 사용자의 PL/Perl 기능 동작. 각각의 그러한 통역사는 자체 값을 갖습니다.%_SHARED변수 및 기타 전역 상태. 따라서, 두 개의 스포츠 토토 사이트/Perl 함수는 동일한 값을 공유합니다.%_SHARED만약 그들이 실행되는 경우에만 동일한 SQL 역할. 단일 세션이 있는 애플리케이션에서 여러 SQL 역할에서 코드를 실행합니다(via보안 정의자함수, 사용역할 설정등) 명시적인 조치를 취해야 할 수도 있습니다. PL/Perl 함수가 다음을 통해 데이터를 공유할 수 있도록 보장합니다.%_SHARED. 그렇게 하려면 해당 기능이 통신해야 하는 항목은 동일한 사용자가 소유하고 표시합니다.보안 정의자. 당연히 해야지 그러한 기능을 사용하여 아무 것도 할 수 없도록 주의하세요 의도하지 않은.