{
    "content": [
        {
            "type": "text",
            "text": "# parent (man)\n\n## NAME\n\nparent - Establish an ISA relationship with base classes at compile time\n\n## SYNOPSIS\n\npackage Baz;\nuse parent qw(Foo Bar);\n\n## DESCRIPTION\n\nAllows you to both load one or more modules, while setting up inheritance from those modules\nat the same time.  Mostly similar in effect to\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **HISTORY**\n- **CAVEATS**\n- **SEE ALSO**\n- **AUTHORS AND CONTRIBUTORS**\n- **MAINTAINER**\n- **LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "parent",
        "section": "",
        "mode": "man",
        "summary": "parent - Establish an ISA relationship with base classes at compile time",
        "synopsis": "package Baz;\nuse parent qw(Foo Bar);",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 48,
                "subsections": []
            },
            {
                "name": "HISTORY",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "CAVEATS",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "AUTHORS AND CONTRIBUTORS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "MAINTAINER",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "parent - Establish an ISA relationship with base classes at compile time\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "package Baz;\nuse parent qw(Foo Bar);\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Allows you to both load one or more modules, while setting up inheritance from those modules\nat the same time.  Mostly similar in effect to\n\npackage Baz;\nBEGIN {\nrequire Foo;\nrequire Bar;\npush @ISA, qw(Foo Bar);\n}\n\nBy default, every base class needs to live in a file of its own.  If you want to have a\nsubclass and its parent class in the same file, you can tell \"parent\" not to load any modules\nby using the \"-norequire\" switch:\n\npackage Foo;\nsub exclaim { \"I CAN HAS PERL\" }\n\npackage DoesNotLoadFooBar;\nuse parent -norequire, 'Foo', 'Bar';\n# will not go looking for Foo.pm or Bar.pm\n\nThis is equivalent to the following code:\n\npackage Foo;\nsub exclaim { \"I CAN HAS PERL\" }\n\npackage DoesNotLoadFooBar;\npush @DoesNotLoadFooBar::ISA, 'Foo', 'Bar';\n\nThis is also helpful for the case where a package lives within a differently named file:\n\npackage MyHash;\nuse Tie::Hash;\nuse parent -norequire, 'Tie::StdHash';\n\nThis is equivalent to the following code:\n\npackage MyHash;\nrequire Tie::Hash;\npush @ISA, 'Tie::StdHash';\n\nIf you want to load a subclass from a file that \"require\" would not consider an eligible\nfilename (that is, it does not end in either \".pm\" or \".pmc\"), use the following code:\n\npackage MySecondPlugin;\nrequire './plugins/custom.plugin'; # contains Plugin::Custom\nuse parent -norequire, 'Plugin::Custom';\n",
                "subsections": []
            },
            "HISTORY": {
                "content": "This module was forked from base to remove the cruft that had accumulated in it.\n",
                "subsections": []
            },
            "CAVEATS": {
                "content": "",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "base\nparent::versioned\nA fork of parent that provides version checking in parent class modules.\n",
                "subsections": []
            },
            "AUTHORS AND CONTRIBUTORS": {
                "content": "Rafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern\n",
                "subsections": []
            },
            "MAINTAINER": {
                "content": "Max Maischein \" corion@cpan.org \"\n\nCopyright (c) 2007-2017 Max Maischein \"<corion@cpan.org>\" Based on the idea of \"base.pm\",\nwhich was introduced with Perl 5.00404.\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "This module is released under the same terms as Perl itself.\n\n\n\nperl v5.34.0                                 2025-07-25                                parent(3perl)",
                "subsections": []
            }
        }
    }
}