{
    "content": [
        {
            "type": "text",
            "text": "# PERLPLAN9 (man)\n\n## NAME\n\nperlplan9 - Plan 9-specific documentation for Perl\n\n## DESCRIPTION\n\nThese are a few notes describing features peculiar to Plan 9 Perl. As such, it is not\nintended to be a replacement for the rest of the Perl 5 documentation (which is both copious\nand excellent). If you have any questions to which you can't find answers in these man pages,\ncontact Luther Huffman at lutherh@stratcom.com and we'll try to answer them.\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION** (5 subsections)\n- **COMPILING AND INSTALLING PERL ON PLAN 9** (1 subsections)\n- **BUGS** (1 subsections)\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "PERLPLAN9",
        "section": "",
        "mode": "man",
        "summary": "perlplan9 - Plan 9-specific documentation for Perl",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": [
                    {
                        "name": "Invoking Perl",
                        "lines": 12
                    },
                    {
                        "name": "What's in Plan 9 Perl",
                        "lines": 4
                    },
                    {
                        "name": "What's not in Plan 9 Perl",
                        "lines": 3
                    },
                    {
                        "name": "Perl5 Functions not currently supported in Plan 9 Perl",
                        "lines": 15
                    },
                    {
                        "name": "Signals in Plan 9 Perl",
                        "lines": 9
                    }
                ]
            },
            {
                "name": "COMPILING AND INSTALLING PERL ON PLAN 9",
                "lines": 27,
                "subsections": [
                    {
                        "name": "Installing Perl Documentation on Plan 9",
                        "lines": 15
                    }
                ]
            },
            {
                "name": "BUGS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "Revision date",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "AUTHOR",
                "lines": 7,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "perlplan9 - Plan 9-specific documentation for Perl\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "These are a few notes describing features peculiar to Plan 9 Perl. As such, it is not\nintended to be a replacement for the rest of the Perl 5 documentation (which is both copious\nand excellent). If you have any questions to which you can't find answers in these man pages,\ncontact Luther Huffman at lutherh@stratcom.com and we'll try to answer them.\n",
                "subsections": [
                    {
                        "name": "Invoking Perl",
                        "content": "Perl is invoked from the command line as described in perl. Most perl scripts, however, do\nhave a first line such as \"#!/usr/local/bin/perl\". This is known as a shebang (shell-bang)\nstatement and tells the OS shell where to find the perl interpreter. In Plan 9 Perl this\nstatement should be \"#!/bin/perl\" if you wish to be able to directly invoke the script by its\nname.\nAlternatively, you may invoke perl with the command \"Perl\" instead of \"perl\". This will\nproduce Acme-friendly error messages of the form \"filename:18\".\n\nSome scripts, usually identified with a *.PL extension, are self-configuring and are able to\ncorrectly create their own shebang path from config information located in Plan 9 Perl. These\nyou won't need to be worried about.\n"
                    },
                    {
                        "name": "What's in Plan 9 Perl",
                        "content": "Although Plan 9 Perl currently only  provides static loading, it is built with a number of\nuseful extensions.  These include Opcode, FileHandle, Fcntl, and POSIX. Expect to see others\n(and DynaLoading!) in the future.\n"
                    },
                    {
                        "name": "What's not in Plan 9 Perl",
                        "content": "As mentioned previously, dynamic loading isn't currently available nor is MakeMaker. Both are\nhigh-priority items.\n"
                    },
                    {
                        "name": "Perl5 Functions not currently supported in Plan 9 Perl",
                        "content": "Some, such as \"chown\" and \"umask\" aren't provided because the concept does not exist within\nPlan 9. Others, such as some of the socket-related functions, simply haven't been written\nyet. Many in the latter category may be supported in the future.\n\nThe functions not currently implemented include:\n\nchown, chroot, dbmclose, dbmopen, getsockopt,\nsetsockopt, recvmsg, sendmsg, getnetbyname,\ngetnetbyaddr, getnetent, getprotoent, getservent,\nsethostent, setnetent, setprotoent, setservent,\nendservent, endnetent, endprotoent, umask\n\nThere may be several other functions that have undefined behavior so this list shouldn't be\nconsidered complete.\n"
                    },
                    {
                        "name": "Signals in Plan 9 Perl",
                        "content": "For compatibility with perl scripts written for the Unix environment, Plan 9 Perl uses the\nPOSIX signal emulation provided in Plan 9's ANSI POSIX Environment (APE). Signal stacking\nisn't supported. The signals provided are:\n\nSIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT,\nSIGFPE, SIGKILL, SIGSEGV, SIGPIPE, SIGPIPE, SIGALRM,\nSIGTERM, SIGUSR1, SIGUSR2, SIGCHLD, SIGCONT,\nSIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU\n"
                    }
                ]
            },
            "COMPILING AND INSTALLING PERL ON PLAN 9": {
                "content": "WELCOME to Plan 9 Perl, brave soul!\n\nThis is a preliminary alpha version of Plan 9 Perl. Still to be\nimplemented are MakeMaker and DynaLoader. Many perl commands are\nmissing or currently behave in an inscrutable manner. These gaps will,\nwith perseverance and a modicum of luck, be remedied in the near\nfuture.To install this software:\n\n1. Create the source directories and libraries for perl by running the plan9/setup.rc command\n(i.e., located in the plan9 subdirectory).  Note: the setup routine assumes that you haven't\ndearchived these files into /sys/src/cmd/perl. After running setup.rc you may delete the copy\nof the source you originally detarred, as source code has now been installed in\n/sys/src/cmd/perl. If you plan on installing perl binaries for all architectures, run\n\"setup.rc -a\".\n\n2. After making sure that you have adequate privileges to build system software, from\n/sys/src/cmd/perl/5.00301 (adjust version appropriately) run:\n\nmk install\n\nIf you wish to install perl versions for all architectures (68020, mips, sparc and 386) run:\n\nmk installall\n\n3. Wait. The build process will take a *long* time because perl bootstraps itself. A 75MHz\nPentium, 16MB RAM machine takes roughly 30 minutes to build the distribution from scratch.\n",
                "subsections": [
                    {
                        "name": "Installing Perl Documentation on Plan 9",
                        "content": "This perl distribution comes with a tremendous amount of documentation. To add these to the\nbuilt-in manuals that come with Plan 9, from /sys/src/cmd/perl/5.00301 (adjust version\nappropriately) run:\n\nmk man\n\nTo begin your reading, start with:\n\nman perl\n\nThis is a good introduction and will direct you towards other man pages that may interest\nyou.\n\n(Note: \"mk man\" may produce some extraneous noise. Fear not.)\n"
                    }
                ]
            },
            "BUGS": {
                "content": "\"As many as there are grains of sand on all the beaches of the world . . .\" - Carl Sagan\n",
                "subsections": [
                    {
                        "name": "Revision date",
                        "content": "This document was revised 09-October-1996 for Perl 5.0037.\n"
                    }
                ]
            },
            "AUTHOR": {
                "content": "Direct questions, comments, and the unlikely bug report (ahem) direct comments toward:\n\nLuther Huffman, lutherh@stratcom.com, Strategic Computer Solutions, Inc.\n\n\n\nperl v5.34.0                                 2025-07-25                                 PERLPLAN9(1)",
                "subsections": []
            }
        }
    }
}