{"kind": "language", "major": "18", "item": {"slug": "plperl", "name": "plperl", "name_zh": "", "category": "PL/Perl", "summary": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00", "aliases": [], "content_hash": "20d8c5cc41e63b1f7ab79a7d4604157e00b5ed10565804d7ebad6f2d1c9c9da0", "versions": {"10": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/10/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/10/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/10/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/10/plperl-funcs.html", "label": "plperl-funcs"}, {"url": "/docs/10/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/10/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/10/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/10/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "catalog_fingerprint": "691be281b476dde4374d7f805b2bacc2e75bdef40f1e9d3d42e91f97fe95cfd0"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, {"url": "https://pg.center/docs/10/plperl.html", "path": "plperl.html", "label": "PostgreSQL 10 English manual", "sha256": "0dc1861c3937d43ab270c0f8a1ed4ca9f31b718ef8c5857a3203c351e149e04b", "language": "en", "original_url": "/docs/10/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plperl;\n\nCOMMENT ON PROCEDURAL LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Perl - Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u53ef\u4ee5\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u597d\u5904\uff0c\u662f\u53ef\u4ee5\u5728\u5b58\u50a8\u51fd\u6570\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u591a\u79cd<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e\u4f7f\u7528 PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/10/installation.html\" title=\"\u7b2c\u00a016\u00a0\u7ae0\u00a0 \u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a016\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/10/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/10/plperl-builtins.html", "method": "same-major semantic node", "sha256": "4bfa08026ff8ed7aa5b70e0c996e5ceedb73676097f55067cb89031312e0642d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl-data.html", "method": "same-major semantic node", "sha256": "e802b03360cfb191793775376ae96516752afd4c8a58796ed5581a580cbc4ca1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "342dd16101189beb9abc69bb02b6eef209fe204c44d8cd9981d63543cf550bb7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl-global.html", "method": "same-major semantic node", "sha256": "1575f7d78ea11e479b9e7a328e459884e06c0a344c81cfc3bcd3c0ed5812a808", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl-triggers.html", "method": "same-major semantic node", "sha256": "d9ebc25a8479818045029460a9812aa8eb55c3e57599bd5544af3098b57e2bcf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl-trusted.html", "method": "same-major semantic node", "sha256": "caa7f6e68c9daafc9515ca75122db4eb7bdadf8676c6b4ae59416c3d477c0b66", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "eed0a6eb7fcf96b483c7a9fe3687eb4fa9655d6e0e567ce261f73351b4edc9cf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/10/plperl.html", "method": "same-major semantic node", "sha256": "06e7bdafb3525134bb751ae1d6eb62c31473e5b094f0aa9bc9e3f4500d625560", "language": "zh", "matched_nodes": ["#PLPERL/h3[0]", "#PLPERL/h3[1]", "#PLPERL/p[1]", "#PLPERL/p[2]", "#PLPERL/p[3]", "#PLPERL/p[4]", "#PLPERL/p[5]"]}], "language": "zh", "original_text": {"/versions/10/description/0": "PL/Perl procedural language", "/versions/10/facts/0/label": "Kind", "/versions/10/facts/0/value": "Bundled procedural-language variant", "/versions/10/facts/1/label": "Family", "/versions/10/facts/2/label": "Trusted", "/versions/10/facts/3/label": "Handler", "/versions/10/facts/4/label": "Inline handler", "/versions/10/facts/5/label": "Validator", "/versions/10/facts/6/label": "Library", "/versions/10/facts/7/label": "Default version", "/versions/10/facts/8/label": "Module pathname", "/versions/10/facts/9/label": "Comment", "/versions/10/facts/9/value": "PL/Perl procedural language", "/versions/10/related/0/label": "plperl-builtins", "/versions/10/related/1/label": "plperl-data", "/versions/10/related/2/label": "plperl-event-triggers", "/versions/10/related/4/label": "plperl-global", "/versions/10/related/5/label": "plperl-triggers", "/versions/10/related/6/label": "plperl-trusted", "/versions/10/related/7/label": "plperl-under-the-hood", "/versions/10/sections/0/title": "Installation definition from the matching source archive", "/versions/10/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "48e92f6bd3dfdc9f1798d3d4ed6220dcd2c8f9715abe66121d43eda33efd7c18"}, "source_files": {"src/pl/plperl/plperl.control": "250d2b026d57a797dfd3e20e866ae0de6d4f1b8f5488e1fe59e869e07fb18728", "src/pl/plperl/plperl--1.0.sql": "fa51bc8383901a213b24d08231cc89d1ab33f742c9a86cee82f4a529a1997287"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "11": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/11/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/11/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/11/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/11/plperl-funcs.html", "label": "plperl-funcs"}, {"url": "/docs/11/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/11/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/11/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/11/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "catalog_fingerprint": "8f21f4444b7f68923f4762af0eb7937fa2907026e91249483e79050de012c901"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, {"url": "https://pg.center/docs/11/plperl.html", "path": "plperl.html", "label": "PostgreSQL 11 English manual", "sha256": "ae66a071ede516182a6aeaa4bacb14b62f82c1ee80bf2aa50a7a9054fa809655", "language": "en", "original_url": "/docs/11/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE PROCEDURAL LANGUAGE plperl;\n\nCOMMENT ON PROCEDURAL LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Perl - Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/11/installation.html\" title=\"\u7b2c\u00a016\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a016\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/11/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/11/plperl-builtins.html", "method": "same-major semantic node", "sha256": "18f3a9538a3ef13292940f0b537d07c2b58b29d00c74168ec56e15b0d977ceac", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl-data.html", "method": "same-major semantic node", "sha256": "67f45a1de739e45a33f5cb4aee7539c14929314666ad4bf912df5697b3b17505", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "02a3d656b72a120d485b5b67ef74eef15b51efc7d157bfeb7c799b59faf06aa5", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl-global.html", "method": "same-major semantic node", "sha256": "9feaf1062b206d47f4920d8842d5517604c3d88242f9c2a0c6379d134573b9b3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl-triggers.html", "method": "same-major semantic node", "sha256": "01706622ce8c0c241464d9c1e48b052bd427769dc3a71eff0110d2f37eb02ddc", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl-trusted.html", "method": "same-major semantic node", "sha256": "f2ddabd7178c1a52665c86e10374c79238bf41fbe437495132dd48c4a4d72351", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "be3e858b83b1f76b8b537c82a0a5e46105e839754424e4659796ef2249333296", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/11/plperl.html", "method": "same-major semantic node", "sha256": "3365cedd1879be375e43532dde2e1f2fe905622649630b478ee784248f498af1", "language": "zh", "matched_nodes": ["#PLPERL/h3[0]", "#PLPERL/h3[1]", "#PLPERL/p[1]", "#PLPERL/p[2]", "#PLPERL/p[3]", "#PLPERL/p[4]", "#PLPERL/p[5]"]}], "language": "zh", "original_text": {"/versions/11/description/0": "PL/Perl procedural language", "/versions/11/facts/0/label": "Kind", "/versions/11/facts/0/value": "Bundled procedural-language variant", "/versions/11/facts/1/label": "Family", "/versions/11/facts/2/label": "Trusted", "/versions/11/facts/3/label": "Handler", "/versions/11/facts/4/label": "Inline handler", "/versions/11/facts/5/label": "Validator", "/versions/11/facts/6/label": "Library", "/versions/11/facts/7/label": "Default version", "/versions/11/facts/8/label": "Module pathname", "/versions/11/facts/9/label": "Comment", "/versions/11/facts/9/value": "PL/Perl procedural language", "/versions/11/related/0/label": "plperl-builtins", "/versions/11/related/1/label": "plperl-data", "/versions/11/related/2/label": "plperl-event-triggers", "/versions/11/related/4/label": "plperl-global", "/versions/11/related/5/label": "plperl-triggers", "/versions/11/related/6/label": "plperl-trusted", "/versions/11/related/7/label": "plperl-under-the-hood", "/versions/11/sections/0/title": "Installation definition from the matching source archive", "/versions/11/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "334c2939285dd617de8742f83f04187730c662ca4acaa2a9881d4936a80f0092"}, "source_files": {"src/pl/plperl/plperl.control": "250d2b026d57a797dfd3e20e866ae0de6d4f1b8f5488e1fe59e869e07fb18728", "src/pl/plperl/plperl--1.0.sql": "fa51bc8383901a213b24d08231cc89d1ab33f742c9a86cee82f4a529a1997287"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "12": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/12/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/12/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/12/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/12/plperl-funcs.html", "label": "plperl-funcs"}, {"url": "/docs/12/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/12/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/12/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/12/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "catalog_fingerprint": "9f857f4ee4875f9c7de6bfc9df4b757dec8b3a0bb88eadb519c7bd267bd56149"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, {"url": "https://pg.center/docs/12/plperl.html", "path": "plperl.html", "label": "PostgreSQL 12 English manual", "sha256": "e05699e450ae3d91eb6ad6afc0024c5ef923397f60922a99d28410f902b67c81", "language": "en", "original_url": "/docs/12/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\n/*\n * Currently, all the interesting stuff is done by CREATE LANGUAGE.\n * Later we will probably \"dumb down\" that command and put more of the\n * knowledge into this script.\n */\n\nCREATE LANGUAGE plperl;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Perl - Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/12/installation.html\" title=\"\u7b2c\u00a016\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a016\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/12/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/12/plperl-builtins.html", "method": "same-major semantic node", "sha256": "38ac356e855355898634e835df5e50da7cc6e2afdf1e07711682b29381fb2584", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl-data.html", "method": "same-major semantic node", "sha256": "d7f032e6514ac071d02e207c40397e470d59954dea5dfaed7f0034da36593801", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "ca83a5b16e3238661782c9dfec7af1a242abe84461388f78de2c632383575947", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl-global.html", "method": "same-major semantic node", "sha256": "1799667910b49cb294ae8e3593d31f8eda0d3e4d03e6cc9a955c26ad5bded399", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl-triggers.html", "method": "same-major semantic node", "sha256": "6e7812d7ae7d2cae47964c8c54900dc23b8c56ea07655a6b46f6ec99a7985d8f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl-trusted.html", "method": "same-major semantic node", "sha256": "b84f7c63dd48324479fe8166a3a8509401e099d7c27ef207a90d6b2ba5564953", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "31629554267c0d8cd9a8ca5469ab3062bf2d88df0e9dbb6e9418528ff392fcb7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/12/plperl.html", "method": "same-major semantic node", "sha256": "488037fad9d644e84be0b97c3c899d7a8746bc00eb9a565b5c8426c29e9582e7", "language": "zh", "matched_nodes": ["#PLPERL/h3[0]", "#PLPERL/h3[1]", "#PLPERL/p[1]", "#PLPERL/p[2]", "#PLPERL/p[3]", "#PLPERL/p[4]", "#PLPERL/p[5]"]}], "language": "zh", "original_text": {"/versions/12/description/0": "PL/Perl procedural language", "/versions/12/facts/0/label": "Kind", "/versions/12/facts/0/value": "Bundled procedural-language variant", "/versions/12/facts/1/label": "Family", "/versions/12/facts/2/label": "Trusted", "/versions/12/facts/3/label": "Handler", "/versions/12/facts/4/label": "Inline handler", "/versions/12/facts/5/label": "Validator", "/versions/12/facts/6/label": "Library", "/versions/12/facts/7/label": "Default version", "/versions/12/facts/8/label": "Module pathname", "/versions/12/facts/9/label": "Comment", "/versions/12/facts/9/value": "PL/Perl procedural language", "/versions/12/related/0/label": "plperl-builtins", "/versions/12/related/1/label": "plperl-data", "/versions/12/related/2/label": "plperl-event-triggers", "/versions/12/related/4/label": "plperl-global", "/versions/12/related/5/label": "plperl-triggers", "/versions/12/related/6/label": "plperl-trusted", "/versions/12/related/7/label": "plperl-under-the-hood", "/versions/12/sections/0/title": "Installation definition from the matching source archive", "/versions/12/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "6a40e7bdf37374c0555cd0667568a6c9729f2fbc62647c4eeea0189e817c63bc"}, "source_files": {"src/pl/plperl/plperl.control": "250d2b026d57a797dfd3e20e866ae0de6d4f1b8f5488e1fe59e869e07fb18728", "src/pl/plperl/plperl--1.0.sql": "31337bfcf8be9cd8ca68720ea57dcc534126d94bbc31ed64961e9f05df485992"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "13": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/13/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/13/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/13/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/13/plperl-funcs.html", "label": "plperl-funcs"}, {"url": "/docs/13/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/13/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/13/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/13/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "catalog_fingerprint": "c7015c845255c9d721c547c8ab9ef37825d332588c9691d982e6906b7d571002"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, {"url": "https://pg.center/docs/13/plperl.html", "path": "plperl.html", "label": "PostgreSQL 13 English manual", "sha256": "b338fb156771be52355c3af59a1b5cefa7d7a99d962ea5c867b85dac11248391", "language": "en", "original_url": "/docs/13/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 44 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/13/installation.html\" title=\"\u7b2c\u00a016\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a016\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/13/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/13/plperl-builtins.html", "method": "same-major semantic node", "sha256": "f75a5c35b436ba01a661b9fb2e7117815ef6692e0e3a0db0328fcf9b7bb173ae", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl-data.html", "method": "same-major semantic node", "sha256": "031436a063d9c53615d8d5ecd202c12f83f2b5ea7db6ae8b57eaed629562cac4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "fb19c544642858f2ead6a610c780c1661182cc7b8ba1df4e2c37b4f0fd4f930b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl-global.html", "method": "same-major semantic node", "sha256": "5fae2abe4ab3bca00fbcf3c90a278a11ed7475d7a5b8d26967be4de0b1ec816f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl-triggers.html", "method": "same-major semantic node", "sha256": "693b8754a454407bf4333555127111531586b26a343ffbd275859550699b278e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl-trusted.html", "method": "same-major semantic node", "sha256": "d0a4b84b14cb0027fba35f57f9f30973aa76d7077b8ef687b3263c82ddf983f2", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "de645c2b87a6cb5aca6a9fe2deed3eaab7a4f2f2cfa6e82161b1e916133a05e7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/13/plperl.html", "method": "same-major semantic node", "sha256": "d0bfbb296bfb3f8575aa15740612b976edcf8354120718b4f242d949af5ccb00", "language": "zh", "matched_nodes": ["#PLPERL/h3[0]", "#PLPERL/h3[1]", "#PLPERL/p[1]", "#PLPERL/p[2]", "#PLPERL/p[3]", "#PLPERL/p[4]", "#PLPERL/p[5]"]}], "language": "zh", "original_text": {"/versions/13/description/0": "PL/Perl procedural language", "/versions/13/facts/0/label": "Kind", "/versions/13/facts/0/value": "Bundled procedural-language variant", "/versions/13/facts/1/label": "Family", "/versions/13/facts/2/label": "Trusted", "/versions/13/facts/3/label": "Handler", "/versions/13/facts/4/label": "Inline handler", "/versions/13/facts/5/label": "Validator", "/versions/13/facts/6/label": "Library", "/versions/13/facts/7/label": "Default version", "/versions/13/facts/8/label": "Module pathname", "/versions/13/facts/9/label": "Comment", "/versions/13/facts/9/value": "PL/Perl procedural language", "/versions/13/related/0/label": "plperl-builtins", "/versions/13/related/1/label": "plperl-data", "/versions/13/related/2/label": "plperl-event-triggers", "/versions/13/related/4/label": "plperl-global", "/versions/13/related/5/label": "plperl-triggers", "/versions/13/related/6/label": "plperl-trusted", "/versions/13/related/7/label": "plperl-under-the-hood", "/versions/13/sections/0/title": "Installation definition from the matching source archive", "/versions/13/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "7ecbb40a64e364424b93bbacae837269e5b2a5bb7a03548007de515acb574be2"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "14": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/14/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/14/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/14/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/14/plperl-funcs.html", "label": "plperl-funcs"}, {"url": "/docs/14/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/14/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/14/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/14/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "catalog_fingerprint": "b272e6a82e4c46efda81c3a6a4cdf7de6a83dfff7f02f226a392fbe9acdd3adb"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, {"url": "https://pg.center/docs/14/plperl.html", "path": "plperl.html", "label": "PostgreSQL 14 English manual", "sha256": "979db062b9446c62c482ca97407cf30588c64918d16004ba41763b7f5dc81bd5", "language": "en", "original_url": "/docs/14/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/14/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/14/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/14/plperl-builtins.html", "method": "same-major semantic node", "sha256": "c6bcdc7e2eeefcc83d9f3d7aabc451bfc271e618bb6497119e184618ac1086e0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl-data.html", "method": "same-major semantic node", "sha256": "c2f4237b89a0280469970b33cfcdb6950827800067ff9e9e748a979151c95085", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "53e2c828acfa8432c3005ce13dde63e50e322a9d72972486383af8946f9ba0f3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl-global.html", "method": "same-major semantic node", "sha256": "56c677dfc74dcdbf7fe53755e90ce7bf2d8d2f6c64fd114a4792ef713050b1cd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl-triggers.html", "method": "same-major semantic node", "sha256": "ab69fd067f1665c30b2798c832f1a3030d259db7929a78a1114fb7d615d559bc", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl-trusted.html", "method": "same-major semantic node", "sha256": "8bdf86d1f2789edf87aff79d2572f298176e61bcb8d5adf6d4e23708757a7fd0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "39751b31ea8716f36006b1a4c43c9573d8b5d862122e3b9184e6df3890c83e55", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/14/plperl.html", "method": "same-major semantic node", "sha256": "98c7c6bc952b9fa2eb7eeb6559810b92f39be2a2fd2abf99a13bb2a96d1ed955", "language": "zh", "matched_nodes": ["#PLPERL/h3[0]", "#PLPERL/h3[1]", "#PLPERL/p[1]", "#PLPERL/p[2]", "#PLPERL/p[3]", "#PLPERL/p[4]", "#PLPERL/p[5]"]}], "language": "zh", "original_text": {"/versions/14/description/0": "PL/Perl procedural language", "/versions/14/facts/0/label": "Kind", "/versions/14/facts/0/value": "Bundled procedural-language variant", "/versions/14/facts/1/label": "Family", "/versions/14/facts/2/label": "Trusted", "/versions/14/facts/3/label": "Handler", "/versions/14/facts/4/label": "Inline handler", "/versions/14/facts/5/label": "Validator", "/versions/14/facts/6/label": "Library", "/versions/14/facts/7/label": "Default version", "/versions/14/facts/8/label": "Module pathname", "/versions/14/facts/9/label": "Comment", "/versions/14/facts/9/value": "PL/Perl procedural language", "/versions/14/related/0/label": "plperl-builtins", "/versions/14/related/1/label": "plperl-data", "/versions/14/related/2/label": "plperl-event-triggers", "/versions/14/related/4/label": "plperl-global", "/versions/14/related/5/label": "plperl-triggers", "/versions/14/related/6/label": "plperl-trusted", "/versions/14/related/7/label": "plperl-under-the-hood", "/versions/14/sections/0/title": "Installation definition from the matching source archive", "/versions/14/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "4c89349545f68bac782dea55529b7718aa1bab5dc26321dcce0563e7e6d8c889"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "15": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/15/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/15/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/15/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/15/plperl-funcs.html", "label": "plperl-funcs"}, {"url": "/docs/15/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/15/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/15/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/15/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "catalog_fingerprint": "fefe3c425147a86defada190c9b0663cfe02caa1724f5dede93e46457572252d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, {"url": "https://pg.center/docs/15/plperl.html", "path": "plperl.html", "label": "PostgreSQL 15 English manual", "sha256": "02f8f31ad3c267a457db0f845072a1f03eabdd1efdeaf48fc3e163445fea3227", "language": "en", "original_url": "/docs/15/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/15/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/15/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/15/plperl-builtins.html", "method": "same-major semantic node", "sha256": "102149d200b441a8766d2c3125bef35ce8ed0d472e7275f5611d0ced12c44b69", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl-data.html", "method": "same-major semantic node", "sha256": "ad74fc68b5a34fbdf2065b14ee4cbaac206513fe31b6ffc500ceb322f07230b1", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "5828c519248db4e715088443c3402d1b8003db6434fb585645522a6aac02626e", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl-global.html", "method": "same-major semantic node", "sha256": "2db4c32ef4ef6cf212c6960a9d5b626738ce5578900ab9170e9907955a9ffe3f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl-triggers.html", "method": "same-major semantic node", "sha256": "26b236b1625cc1e9f9c82d9089f23f9cdbb2f74dc1483a942b31ce9b00a7bee0", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl-trusted.html", "method": "same-major semantic node", "sha256": "5252c3e7c159e610c36ab2abb895afcc1a9fa8a199e26298922d66fc85377820", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "849fe0f1462f35c01504db713fd65f0bd973f83217b8fe8e86192d8f15f9bacd", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/15/plperl.html", "method": "same-major semantic node", "sha256": "3c7248cfe2e910ad695a4cafe9670957246b41bd853602cb51589a2beb31eb95", "language": "zh", "matched_nodes": ["#PLPERL/h3[0]", "#PLPERL/h3[1]", "#PLPERL/p[1]", "#PLPERL/p[2]", "#PLPERL/p[3]", "#PLPERL/p[4]", "#PLPERL/p[5]"]}], "language": "zh", "original_text": {"/versions/15/description/0": "PL/Perl procedural language", "/versions/15/facts/0/label": "Kind", "/versions/15/facts/0/value": "Bundled procedural-language variant", "/versions/15/facts/1/label": "Family", "/versions/15/facts/2/label": "Trusted", "/versions/15/facts/3/label": "Handler", "/versions/15/facts/4/label": "Inline handler", "/versions/15/facts/5/label": "Validator", "/versions/15/facts/6/label": "Library", "/versions/15/facts/7/label": "Default version", "/versions/15/facts/8/label": "Module pathname", "/versions/15/facts/9/label": "Comment", "/versions/15/facts/9/value": "PL/Perl procedural language", "/versions/15/related/0/label": "plperl-builtins", "/versions/15/related/1/label": "plperl-data", "/versions/15/related/2/label": "plperl-event-triggers", "/versions/15/related/4/label": "plperl-global", "/versions/15/related/5/label": "plperl-triggers", "/versions/15/related/6/label": "plperl-trusted", "/versions/15/related/7/label": "plperl-under-the-hood", "/versions/15/sections/0/title": "Installation definition from the matching source archive", "/versions/15/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "c1698431b3ac5f4b33c2f8297c19b001e1227a32eb5e902a50ddaf00aae150e6"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "16": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/16/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/16/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/16/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/16/plperl-funcs.html", "label": "PL/Perl \u51fd\u6570\u548c\u53c2\u6570"}, {"url": "/docs/16/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/16/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/16/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/16/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "catalog_fingerprint": "fa133458dc8f52e15083b4f59b7a582e2e378b608d3ac5c53054df458a374e23"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, {"url": "https://pg.center/docs/16/plperl.html", "path": "plperl.html", "label": "PostgreSQL 16 English manual", "sha256": "cb37a0a73ae8fe47ce7ccc8c996e30d866b9064fa3bfe9a3a0a55ef3b48d31d6", "language": "en", "original_url": "/docs/16/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 45 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/16/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/16/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/16/plperl-builtins.html", "method": "same-major semantic node", "sha256": "fe2a327545161322f4c3f4780f2ead8b222808d53271fe32ed9cf81d241f16f7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-data.html", "method": "same-major semantic node", "sha256": "56ed1b1d4bab7605230fa161d47d18bd5262f032006a72382b0bf9f6694c34ff", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "6580af5e9cc72dfe95e4178b769fa51867e529421b559be518503f5348271ea3", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-funcs.html", "method": "same-major semantic node", "sha256": "ef29443ee64bbaf4cc387b42aa4a763aaf16c51304a20bc495676638012a793f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-global.html", "method": "same-major semantic node", "sha256": "4ce4515a1013dd26bbeac6ea3aff480910597620e04b749bc99f16710d2f03b4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-triggers.html", "method": "same-major semantic node", "sha256": "94a21ac54d0c653e3da8a82501596c2439826ab2fd387b3b342623f4062f109f", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-trusted.html", "method": "same-major semantic node", "sha256": "5c42259ba0fb3cc6951546f7db26acd5b546c863024e222878f5216007db7171", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "dc5368e800745f849a27c18b897ec3a512bfbd048d8002248b461c5bcd897dcf", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/16/plperl.html", "method": "same-major semantic node", "sha256": "97de5eed79fe75199e8bea1ae488b09fa9e1e6ff408773512a739b5e57548915", "language": "zh", "matched_nodes": ["#PLPERL/div[7]/h3[0]", "#PLPERL/div[7]/p[1]", "#PLPERL/div[8]/h3[0]", "#PLPERL/div[8]/p[1]", "#PLPERL/p[4]", "#PLPERL/p[5]", "#PLPERL/p[6]"]}], "language": "zh", "original_text": {"/versions/16/description/0": "PL/Perl procedural language", "/versions/16/facts/0/label": "Kind", "/versions/16/facts/0/value": "Bundled procedural-language variant", "/versions/16/facts/1/label": "Family", "/versions/16/facts/2/label": "Trusted", "/versions/16/facts/3/label": "Handler", "/versions/16/facts/4/label": "Inline handler", "/versions/16/facts/5/label": "Validator", "/versions/16/facts/6/label": "Library", "/versions/16/facts/7/label": "Default version", "/versions/16/facts/8/label": "Module pathname", "/versions/16/facts/9/label": "Comment", "/versions/16/facts/9/value": "PL/Perl procedural language", "/versions/16/related/0/label": "plperl-builtins", "/versions/16/related/1/label": "plperl-data", "/versions/16/related/2/label": "plperl-event-triggers", "/versions/16/related/3/label": "plperl-funcs", "/versions/16/related/4/label": "plperl-global", "/versions/16/related/5/label": "plperl-triggers", "/versions/16/related/6/label": "plperl-trusted", "/versions/16/related/7/label": "plperl-under-the-hood", "/versions/16/sections/0/title": "Installation definition from the matching source archive", "/versions/16/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "1948638dab3eee47404045b0d0c15a2392c1e995e6f1270281f9199ce6c758fd"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "17": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/17/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/17/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/17/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/17/plperl-funcs.html", "label": "PL/Perl \u51fd\u6570\u548c\u53c2\u6570"}, {"url": "/docs/17/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/17/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/17/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/17/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "catalog_fingerprint": "4bbe3ac77becd618478f66aec420a533e9017be356c5c1d51a4b17f0fd497c07"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, {"url": "https://pg.center/docs/17/plperl.html", "path": "plperl.html", "label": "PostgreSQL 17 English manual", "sha256": "513140d0aad3ffe43682ff112bc86c4e83fe365d83620597c1cd4772a8001acb", "language": "en", "original_url": "/docs/17/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 43 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/17/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/17/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/17/plperl-builtins.html", "method": "same-major semantic node", "sha256": "81f1ad91ecb421805999633c5e3e0e7baeffb7be26356dededf43c84f8050dae", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-data.html", "method": "same-major semantic node", "sha256": "a8c86071a49cfa5d4a90e46179a1ce62920d976221b9f9a70a8158743500a202", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "64259aa5cfd33fc0270aeddd8b622d9a647a7aa495a90faebc9a78a38fb46b02", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-funcs.html", "method": "same-major semantic node", "sha256": "2fc1cdd5a9c35c3d1e77a9b3851a094878a7e7ceb53e47a2c74edba01713bac2", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-global.html", "method": "same-major semantic node", "sha256": "57436bc65ee884745157e312a65f8168082f4e4df14239d4a9246eb5fb227f31", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-triggers.html", "method": "same-major semantic node", "sha256": "7ff6c9b6426713a433c264d119624c3c6106b046afe7ead80f2c7a19ff887403", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-trusted.html", "method": "same-major semantic node", "sha256": "11bdca356e0c278008b83777f0136d41265edd0b12e0e9bb4c05a0c0cdb46766", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "4540d9229855ae515403aee6c68d804ea5dd6a5ee988a6e8110384b1290776d6", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/17/plperl.html", "method": "same-major semantic node", "sha256": "74da8605e6d6cda498d943697278992ce27b8562e7cfd7d463f9c5354aca2326", "language": "zh", "matched_nodes": ["#PLPERL/div[7]/h3[0]", "#PLPERL/div[7]/p[1]", "#PLPERL/div[8]/h3[0]", "#PLPERL/div[8]/p[1]", "#PLPERL/p[4]", "#PLPERL/p[5]", "#PLPERL/p[6]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "PL/Perl procedural language", "/versions/17/facts/0/label": "Kind", "/versions/17/facts/0/value": "Bundled procedural-language variant", "/versions/17/facts/1/label": "Family", "/versions/17/facts/2/label": "Trusted", "/versions/17/facts/3/label": "Handler", "/versions/17/facts/4/label": "Inline handler", "/versions/17/facts/5/label": "Validator", "/versions/17/facts/6/label": "Library", "/versions/17/facts/7/label": "Default version", "/versions/17/facts/8/label": "Module pathname", "/versions/17/facts/9/label": "Comment", "/versions/17/facts/9/value": "PL/Perl procedural language", "/versions/17/related/0/label": "plperl-builtins", "/versions/17/related/1/label": "plperl-data", "/versions/17/related/2/label": "plperl-event-triggers", "/versions/17/related/3/label": "plperl-funcs", "/versions/17/related/4/label": "plperl-global", "/versions/17/related/5/label": "plperl-triggers", "/versions/17/related/6/label": "plperl-trusted", "/versions/17/related/7/label": "plperl-under-the-hood", "/versions/17/sections/0/title": "Installation definition from the matching source archive", "/versions/17/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "ac422d59e26f0514f10df90597c633a837c2155d07348478eeb2d1d5381418f9"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "18": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/18/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/18/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/18/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/18/plperl-funcs.html", "label": "PL/Perl \u51fd\u6570\u548c\u53c2\u6570"}, {"url": "/docs/18/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/18/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/18/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/18/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "catalog_fingerprint": "65c93d6048ef30e61023a84f9680fa6a92b1c383b7eb226741170077eb078502"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "https://pg.center/docs/18/plperl.html", "path": "plperl.html", "label": "PostgreSQL 18 English manual", "sha256": "df8d580be7d76f557e7e2e5cc7bec6ad6870ed6ccc987ced882308747c8da608", "language": "en", "original_url": "/docs/18/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 43 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/18/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/18/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/plperl-builtins.html", "method": "same-major semantic node", "sha256": "f98c07e9a36998c5a3fe6efce8ede51764a7c324bac873ddd4d16447aa0a1b80", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-data.html", "method": "same-major semantic node", "sha256": "82ba3617929c7715d3a7f0d2ce0df67872f8cf4a3430ca4b7c4520b66a3dc41b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "f5d88bce2275c97fd682e878d25c239037094fe24c3d8b071fd548e551e106fe", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-funcs.html", "method": "same-major semantic node", "sha256": "8d4eec48e60f7781084599166f4c7a0ab6bd17958b2fdcba795b56f04f8e00f7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-global.html", "method": "same-major semantic node", "sha256": "8a556851863ff8b77fd034069191bea159a1f423128d42fedf4fa5afd025e377", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-triggers.html", "method": "same-major semantic node", "sha256": "f5650532475f4a21d7fbe5cab78129fb461b0f7116737ce5675506064c6406da", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-trusted.html", "method": "same-major semantic node", "sha256": "5774a369f73d0b423f56b60eb2b1a061acb263804993311a1344422f9ef13954", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "b2622e5d2e04136bf3f8c175046083a360cce01b8eab825903ff4d7f9beb89ef", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl.html", "method": "same-major semantic node", "sha256": "7c9fa3cbd3549fd67e994af4262f703dc749d39f9d1221ca5d723948cd6fe71f", "language": "zh", "matched_nodes": ["#PLPERL/div[7]/h3[0]", "#PLPERL/div[7]/p[1]", "#PLPERL/div[8]/h3[0]", "#PLPERL/div[8]/p[1]", "#PLPERL/p[4]", "#PLPERL/p[5]", "#PLPERL/p[6]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "PL/Perl procedural language", "/versions/18/facts/0/label": "Kind", "/versions/18/facts/0/value": "Bundled procedural-language variant", "/versions/18/facts/1/label": "Family", "/versions/18/facts/2/label": "Trusted", "/versions/18/facts/3/label": "Handler", "/versions/18/facts/4/label": "Inline handler", "/versions/18/facts/5/label": "Validator", "/versions/18/facts/6/label": "Library", "/versions/18/facts/7/label": "Default version", "/versions/18/facts/8/label": "Module pathname", "/versions/18/facts/9/label": "Comment", "/versions/18/facts/9/value": "PL/Perl procedural language", "/versions/18/related/0/label": "plperl-builtins", "/versions/18/related/1/label": "plperl-data", "/versions/18/related/2/label": "plperl-event-triggers", "/versions/18/related/3/label": "plperl-funcs", "/versions/18/related/4/label": "plperl-global", "/versions/18/related/5/label": "plperl-triggers", "/versions/18/related/6/label": "plperl-trusted", "/versions/18/related/7/label": "plperl-under-the-hood", "/versions/18/sections/0/title": "Installation definition from the matching source archive", "/versions/18/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bc5eeb99ecc3022baf6908897064aba1c8f97218e52e05ddef057eab29183b1d"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "19": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/19/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/19/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/19/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/19/plperl-funcs.html", "label": "PL/Perl \u51fd\u6570\u548c\u53c2\u6570"}, {"url": "/docs/19/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/19/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/19/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/19/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "catalog_fingerprint": "62fbf1a3689dbe8bf7e6b3372cfe6fbf867581427b3858a94c8419b77a4d2d1d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, {"url": "https://pg.center/docs/19/plperl.html", "path": "plperl.html", "label": "PostgreSQL 19 English manual", "sha256": "210f046eb389e19dd28acfa2e4c14809e807c0ed90a8ef00815b99f57f83eb7a", "language": "en", "original_url": "/docs/19/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 43 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/19/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/19/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/19/plperl-builtins.html", "method": "same-major semantic node", "sha256": "9a79a13d1a1fdf0a26a493f22d0ac5f68ee125ff95520e5c343d692fcfee6ad4", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-data.html", "method": "same-major semantic node", "sha256": "e2a0e74b2a8803917739b559a8dae351075de239c0c6fa43985f87459e47b275", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "1aa4bf5c83982bb4db282f65166261951603ec06688b1016b59b2ee2fe973a26", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-funcs.html", "method": "same-major semantic node", "sha256": "ac159b2c21903a63c28465ec51643ca74ed4cf35d4e32d0b22b4dcd31e23921c", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-global.html", "method": "same-major semantic node", "sha256": "6938f20ce07407fb92ef5c844048d17972c4066c4ce312f76f046763dc42461d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-triggers.html", "method": "same-major semantic node", "sha256": "88cf5d0e89289719a7431b1137ac3587d925959ff5fc57417610f7cf3db73a44", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-trusted.html", "method": "same-major semantic node", "sha256": "fbf54d00d60bcaa6bbf2ec84da1e78d7f1bd0763e3b0b9abd98a7053db3c321a", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "9dd0bb06d428333a64466b0f8f21b2fe8648a4995087f551072453f683bf4987", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/19/plperl.html", "method": "same-major semantic node", "sha256": "f924851e6d64383e800bddc247523b5a0b9c8972181607670934bbf07c87c1dd", "language": "zh", "matched_nodes": ["#PLPERL/div[7]/h3[0]", "#PLPERL/div[7]/p[1]", "#PLPERL/div[8]/h3[0]", "#PLPERL/div[8]/p[1]", "#PLPERL/p[4]", "#PLPERL/p[5]", "#PLPERL/p[6]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "PL/Perl procedural language", "/versions/19/facts/0/label": "Kind", "/versions/19/facts/0/value": "Bundled procedural-language variant", "/versions/19/facts/1/label": "Family", "/versions/19/facts/2/label": "Trusted", "/versions/19/facts/3/label": "Handler", "/versions/19/facts/4/label": "Inline handler", "/versions/19/facts/5/label": "Validator", "/versions/19/facts/6/label": "Library", "/versions/19/facts/7/label": "Default version", "/versions/19/facts/8/label": "Module pathname", "/versions/19/facts/9/label": "Comment", "/versions/19/facts/9/value": "PL/Perl procedural language", "/versions/19/related/0/label": "plperl-builtins", "/versions/19/related/1/label": "plperl-data", "/versions/19/related/2/label": "plperl-event-triggers", "/versions/19/related/3/label": "plperl-funcs", "/versions/19/related/4/label": "plperl-global", "/versions/19/related/5/label": "plperl-triggers", "/versions/19/related/6/label": "plperl-trusted", "/versions/19/related/7/label": "plperl-under-the-hood", "/versions/19/sections/0/title": "Installation definition from the matching source archive", "/versions/19/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "ccf2baf3c81b12af46f0a9c8096a024324d2e57f6faa37683fc31a39a9a51600"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "20": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/devel/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/devel/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/devel/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/devel/plperl-funcs.html", "label": "PL/Perl \u51fd\u6570\u548c\u53c2\u6570"}, {"url": "/docs/devel/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/devel/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/devel/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/devel/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "catalog_fingerprint": "398fbb9f262264053c02fbf79f88be0a6770c1473faa6ecd5931d6ec41b8258b", "source_snapshot_utc": "26-Sep-2026 20:22"}, "sources": [{"url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, {"url": "https://pg.center/docs/devel/plperl.html", "path": "plperl.html", "label": "PostgreSQL 20 English manual", "sha256": "5304a6a5285459aa594b3c30b6be909af1539d997556a8d13a9d4cd1f6cad125", "language": "en", "original_url": "/docs/devel/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 43 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/devel/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/devel/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/devel/plperl-builtins.html", "method": "same-major semantic node", "sha256": "0378e029158b5819c3e40fcba7bbc974e6f8daece8bd5f071ed06db06bf32b17", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-data.html", "method": "same-major semantic node", "sha256": "a92bc9e65bf6015d4b62ea14195ddf715e9c076e13764d5e392c9d5a9abe67fa", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "99d7dcae3b7351780d8ec4313ac870f25af31b49f92d5c87d57fe040d3cc982d", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-funcs.html", "method": "same-major semantic node", "sha256": "00f9eab200e74104133f77a7a9a7407278939f09ef334cf098c3210449a90263", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-global.html", "method": "same-major semantic node", "sha256": "72705176ce93852aea3617b648e4d9f58258680caa711ebc5c051c321284f506", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-triggers.html", "method": "same-major semantic node", "sha256": "5f56400145ac63b152be636aed9259b845ed3d625cd7763438010fa8bbc52593", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-trusted.html", "method": "same-major semantic node", "sha256": "fead3f40367a93a8ecc5b587b50f6cab44f1e2ae52dc17b41867c049681aa1f8", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "c7966ad91453e388a719b575983d3cac6a39b8c1a3ecf0e758808dd48ad1c5ac", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/devel/plperl.html", "method": "same-major semantic node", "sha256": "5d2899c5f9e9bc2cf19d4ea732b311a23936b86e4c4f01f27c02ee85b5016763", "language": "zh", "matched_nodes": ["#PLPERL/div[7]/h3[0]", "#PLPERL/div[7]/p[1]", "#PLPERL/div[8]/h3[0]", "#PLPERL/div[8]/p[1]", "#PLPERL/p[4]", "#PLPERL/p[5]", "#PLPERL/p[6]"]}], "language": "zh", "original_text": {"/summary": "PL/Perl procedural language", "/versions/20/description/0": "PL/Perl procedural language", "/versions/20/facts/0/label": "Kind", "/versions/20/facts/0/value": "Bundled procedural-language variant", "/versions/20/facts/1/label": "Family", "/versions/20/facts/2/label": "Trusted", "/versions/20/facts/3/label": "Handler", "/versions/20/facts/4/label": "Inline handler", "/versions/20/facts/5/label": "Validator", "/versions/20/facts/6/label": "Library", "/versions/20/facts/7/label": "Default version", "/versions/20/facts/8/label": "Module pathname", "/versions/20/facts/9/label": "Comment", "/versions/20/facts/9/value": "PL/Perl procedural language", "/versions/20/related/0/label": "plperl-builtins", "/versions/20/related/1/label": "plperl-data", "/versions/20/related/2/label": "plperl-event-triggers", "/versions/20/related/3/label": "plperl-funcs", "/versions/20/related/4/label": "plperl-global", "/versions/20/related/5/label": "plperl-triggers", "/versions/20/related/6/label": "plperl-trusted", "/versions/20/related/7/label": "plperl-under-the-hood", "/versions/20/sections/0/title": "Installation definition from the matching source archive", "/versions/20/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "62b1b603f23229a60cf3b92ac6e00342b7a4db9ace4e62649465878cdb54c731"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}}}, "snapshot": {"facts": [{"label": "\u79cd\u7c7b", "value": "\u968f\u6e90\u7801\u63d0\u4f9b\u7684\u8fc7\u7a0b\u8bed\u8a00\u53d8\u4f53"}, {"label": "\u64cd\u4f5c\u7b26\u5bb6\u65cf", "value": "PL/Perl"}, {"label": "\u53ef\u4fe1", "value": "t"}, {"label": "\u5904\u7406\u51fd\u6570", "value": "plperl_call_handler"}, {"label": "\u5185\u8054\u4ee3\u7801\u5904\u7406\u51fd\u6570", "value": "plperl_inline_handler"}, {"label": "\u6821\u9a8c\u51fd\u6570", "value": "plperl_validator"}, {"label": "\u5e93", "value": "$libdir/plperl"}, {"label": "\u9ed8\u8ba4\u7248\u672c", "value": "1.0"}, {"label": "\u6a21\u5757\u8def\u5f84", "value": "$libdir/plperl"}, {"label": "\u6ce8\u91ca", "value": "PL/Perl \u8fc7\u7a0b\u8bed\u8a00"}], "tables": [], "aliases": [], "related": [{"url": "/docs/18/plperl-builtins.html", "label": "\u5185\u7f6e\u51fd\u6570"}, {"url": "/docs/18/plperl-data.html", "label": "PL/Perl \u4e2d\u7684\u6570\u636e\u503c"}, {"url": "/docs/18/plperl-event-triggers.html", "label": "PL/Perl \u4e8b\u4ef6\u89e6\u53d1\u5668"}, {"url": "/docs/18/plperl-funcs.html", "label": "PL/Perl \u51fd\u6570\u548c\u53c2\u6570"}, {"url": "/docs/18/plperl-global.html", "label": "PL/Perl \u4e2d\u7684\u5168\u5c40\u503c"}, {"url": "/docs/18/plperl-triggers.html", "label": "PL/Perl \u89e6\u53d1\u5668"}, {"url": "/docs/18/plperl-trusted.html", "label": "\u53d7\u4fe1\u4efb\u4e0e\u4e0d\u53d7\u4fe1\u4efb\u7684 PL/Perl"}, {"url": "/docs/18/plperl-under-the-hood.html", "label": "PL/Perl \u5185\u90e8\u673a\u5236"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "catalog_fingerprint": "65c93d6048ef30e61023a84f9680fa6a92b1c383b7eb226741170077eb078502"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "https://pg.center/docs/18/plperl.html", "path": "plperl.html", "label": "PostgreSQL 18 English manual", "sha256": "df8d580be7d76f557e7e2e5cc7bec6ad6870ed6ccc987ced882308747c8da608", "language": "en", "original_url": "/docs/18/plperl.html"}], "sections": [{"code": "/* src/pl/plperl/plperl--1.0.sql */\n\nCREATE FUNCTION plperl_call_handler() RETURNS language_handler\n  LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_inline_handler(internal) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE FUNCTION plperl_validator(oid) RETURNS void\n  STRICT LANGUAGE c AS 'MODULE_PATHNAME';\n\nCREATE TRUSTED LANGUAGE plperl\n  HANDLER plperl_call_handler\n  INLINE plperl_inline_handler\n  VALIDATOR plperl_validator;\n\n-- The language object, but not the functions, can be owned by a non-superuser.\nALTER LANGUAGE plperl OWNER TO @extowner@;\n\nCOMMENT ON LANGUAGE plperl IS 'PL/Perl procedural language';", "title": "\u540c\u6784\u5efa\u6e90\u7801\u4e2d\u7684\u5b89\u88c5\u5b9a\u4e49", "paragraphs": ["\u6b64\u6269\u5c55\u968f\u6e90\u7801\u63d0\u4f9b\uff1b\u6536\u5f55\u5b83\u5e76\u4e0d\u8868\u793a\u5df2\u5b89\u88c5\u8be5\u8bed\u8a00\u6216\u5916\u90e8\u8fd0\u884c\u65f6\u3002"]}], "signature": "", "attributes": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "comment": "PL/Perl procedural language", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0", "module_pathname": "$libdir/plperl"}, "description": ["PL/Perl \u8fc7\u7a0b\u8bed\u8a00"], "manual_html": "<div class=\"chapter\" id=\"PLPERL\">\n<div class=\"titlepage\">\n<div>\n<div>\n<h2 class=\"title\" lang=\"zh\">\u7b2c 43 \u7ae0. PL/Perl \u2014 Perl Procedural Language</h2>\n</div>\n</div>\n</div>\n<p lang=\"zh\">PL/Perl \u662f\u4e00\u79cd\u53ef\u52a0\u8f7d\u7684\u8fc7\u7a0b\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528 <a class=\"ulink\" href=\"https://www.perl.org\" target=\"_top\">Perl \u7f16\u7a0b\u8bed\u8a00</a>\u7f16\u5199 <span class=\"productname\">PostgreSQL</span> \u51fd\u6570\u548c\u8fc7\u7a0b\u3002</p>\n<p lang=\"zh\">\u4f7f\u7528 PL/Perl \u7684\u4e3b\u8981\u4f18\u52bf\u5728\u4e8e\uff0c\u5b83\u5141\u8bb8\u5728\u5b58\u50a8\u51fd\u6570\u548c\u8fc7\u7a0b\u4e2d\u4f7f\u7528 Perl \u63d0\u4f9b\u7684\u5927\u91cf<span class=\"quote\">\u201c<span class=\"quote\">\u5b57\u7b26\u4e32\u5904\u7406</span>\u201d</span>\u64cd\u4f5c\u7b26\u548c\u51fd\u6570\u3002\u4e0e PL/pgSQL \u63d0\u4f9b\u7684\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u63a7\u5236\u7ed3\u6784\u76f8\u6bd4\uff0c\u4f7f\u7528 Perl \u89e3\u6790\u590d\u6742\u5b57\u7b26\u4e32\u53ef\u80fd\u66f4\u5bb9\u6613\u3002</p>\n<p lang=\"zh\">\u8981\u5728\u7279\u5b9a\u6570\u636e\u5e93\u4e2d\u5b89\u88c5 PL/Perl\uff0c\u53ef\u4f7f\u7528 <code class=\"literal\">CREATE EXTENSION plperl</code>\u3002</p>\n<div class=\"tip\">\n<h3 class=\"title\" lang=\"zh\">\u63d0\u793a</h3>\n<p lang=\"zh\">\u5982\u679c\u628a\u67d0\u79cd\u8bed\u8a00\u5b89\u88c5\u5230<code class=\"literal\">template1</code>\u4e2d\uff0c\u4e4b\u540e\u521b\u5efa\u7684\u6240\u6709\u6570\u636e\u5e93\u90fd\u4f1a\u81ea\u52a8\u5b89\u88c5\u8be5\u8bed\u8a00\u3002</p>\n</div>\n<div class=\"note\">\n<h3 class=\"title\" lang=\"zh\">\u6ce8\u610f</h3>\n<p lang=\"zh\">\u4f7f\u7528\u6e90\u7801\u5305\u7684\u7528\u6237\u5fc5\u987b\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4e13\u95e8\u542f\u7528 PL/Perl \u7684\u6784\u5efa\uff08\u66f4\u591a\u4fe1\u606f\u89c1<a class=\"xref\" href=\"/docs/18/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u7b2c\u00a017\u00a0\u7ae0</a>\uff09\u3002\u4f7f\u7528\u4e8c\u8fdb\u5236\u5305\u7684\u7528\u6237\u53ef\u80fd\u4f1a\u5728\u5355\u72ec\u7684\u5b50\u5305\u4e2d\u627e\u5230 PL/Perl\u3002</p>\n</div>\n</div>", "manual_path": "/docs/18/plperl.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/plperl-builtins.html", "method": "same-major semantic node", "sha256": "f98c07e9a36998c5a3fe6efce8ede51764a7c324bac873ddd4d16447aa0a1b80", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-data.html", "method": "same-major semantic node", "sha256": "82ba3617929c7715d3a7f0d2ce0df67872f8cf4a3430ca4b7c4520b66a3dc41b", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-event-triggers.html", "method": "same-major semantic node", "sha256": "f5d88bce2275c97fd682e878d25c239037094fe24c3d8b071fd548e551e106fe", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-funcs.html", "method": "same-major semantic node", "sha256": "8d4eec48e60f7781084599166f4c7a0ab6bd17958b2fdcba795b56f04f8e00f7", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-global.html", "method": "same-major semantic node", "sha256": "8a556851863ff8b77fd034069191bea159a1f423128d42fedf4fa5afd025e377", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-triggers.html", "method": "same-major semantic node", "sha256": "f5650532475f4a21d7fbe5cab78129fb461b0f7116737ce5675506064c6406da", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-trusted.html", "method": "same-major semantic node", "sha256": "5774a369f73d0b423f56b60eb2b1a061acb263804993311a1344422f9ef13954", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl-under-the-hood.html", "method": "same-major semantic node", "sha256": "b2622e5d2e04136bf3f8c175046083a360cce01b8eab825903ff4d7f9beb89ef", "language": "zh", "matched_nodes": ["page-title/h2"]}, {"url": "/docs/18/plperl.html", "method": "same-major semantic node", "sha256": "7c9fa3cbd3549fd67e994af4262f703dc749d39f9d1221ca5d723948cd6fe71f", "language": "zh", "matched_nodes": ["#PLPERL/div[7]/h3[0]", "#PLPERL/div[7]/p[1]", "#PLPERL/div[8]/h3[0]", "#PLPERL/div[8]/p[1]", "#PLPERL/p[4]", "#PLPERL/p[5]", "#PLPERL/p[6]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "PL/Perl procedural language", "/versions/18/facts/0/label": "Kind", "/versions/18/facts/0/value": "Bundled procedural-language variant", "/versions/18/facts/1/label": "Family", "/versions/18/facts/2/label": "Trusted", "/versions/18/facts/3/label": "Handler", "/versions/18/facts/4/label": "Inline handler", "/versions/18/facts/5/label": "Validator", "/versions/18/facts/6/label": "Library", "/versions/18/facts/7/label": "Default version", "/versions/18/facts/8/label": "Module pathname", "/versions/18/facts/9/label": "Comment", "/versions/18/facts/9/value": "PL/Perl procedural language", "/versions/18/related/0/label": "plperl-builtins", "/versions/18/related/1/label": "plperl-data", "/versions/18/related/2/label": "plperl-event-triggers", "/versions/18/related/3/label": "plperl-funcs", "/versions/18/related/4/label": "plperl-global", "/versions/18/related/5/label": "plperl-triggers", "/versions/18/related/6/label": "plperl-trusted", "/versions/18/related/7/label": "plperl-under-the-hood", "/versions/18/sections/0/title": "Installation definition from the matching source archive", "/versions/18/sections/0/paragraphs/0": "This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed."}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bc5eeb99ecc3022baf6908897064aba1c8f97218e52e05ddef057eab29183b1d"}, "source_files": {"src/pl/plperl/plperl.control": "12e5ab2ab6f9d9963482311084b3171087a28b3168f7e1e09ada38df4ba264e3", "src/pl/plperl/plperl--1.0.sql": "8a6ef30b252bfdd4fd79bed8acd37622600544148e780060c8bfa7f968a43716"}, "comparison_data": {"kind": "Bundled procedural-language variant", "family": "PL/Perl", "handler": "plperl_call_handler", "library": "$libdir/plperl", "trusted": "t", "validator": "plperl_validator", "inline_handler": "plperl_inline_handler", "default_version": "1.0"}, "comparison_hash": "a00c47e0d93a6cb24d319ebff1ecea0c54254650f9ecd1129bb5115a736dc8b5", "manual_language": "zh"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}