{
    "content": [
        {
            "type": "text",
            "text": "# Date::Manip::Interfaces (perldoc)\n\n## NAME\n\nDate::Manip::Interfaces - A description of functional and OO interfaces\n\n## DESCRIPTION\n\nThere are three different ways to use Date::Manip . A complete description of each is included\nbelow. They are:\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION**\n- **VERSION 5 AND VERSION 6**\n- **OBJECT-ORIENTED INTERFACE**\n- **SELECTING AN INTERFACE**\n- **SEE ALSO**\n- **LICENSE**\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Date::Manip::Interfaces",
        "section": "",
        "mode": "perldoc",
        "summary": "Date::Manip::Interfaces - A description of functional and OO interfaces",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 16,
                "subsections": []
            },
            {
                "name": "VERSION 5 AND VERSION 6",
                "lines": 80,
                "subsections": []
            },
            {
                "name": "OBJECT-ORIENTED INTERFACE",
                "lines": 9,
                "subsections": []
            },
            {
                "name": "SELECTING AN INTERFACE",
                "lines": 45,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Date::Manip::Interfaces - A description of functional and OO interfaces\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "There are three different ways to use Date::Manip . A complete description of each is included\nbelow. They are:\n\nFunctional interface (version 5)\nDate::Manip version 5 runs on very old versions of perl. If you need to use Date::Manip with\na version of perl older than 5.10, this is the only interface available.\n\nFunctional interface (version 6)\nWhen Date::Manip was rewritten (version 6), it made use of some features of perl 5.10 . This\nis the recommended interface if you are supporting a script that uses the functional\ninterface, but where a newer version of perl is available.\n\nObject-oriented interface\nThe OO interface is the recommended interface wherever possible. It is the only one with\naccess to the full functionality of the module.\n",
                "subsections": []
            },
            "VERSION 5 AND VERSION 6": {
                "content": "Date::Manip version 5.xx was available for many years, but suffered from several weaknesses. It\nwas slow, and did not handle timezones or daylight saving time correctly. It was written as a\nfunctional interface, even though an object-oriented interface would have been better. It did\nhave the advantage of running on very old versions of perl (it is known to work on perl 5.6 and\nmay work on even older versions of perl).\n\nDate::Manip version 6.00 was a complete rewrite of the module. For detailed information about\nthe differences, please refer to the Date::Manip::Changes5to6 document. The rewrite was needed\nin order to handle timezone operations, in addition to many other improvements including much\nbetter performance and more robust parsing.\n\nThe rewrite made use of features introduced in perl 5.10 which made the date parsing routines\nsignificantly cleaner. In addition, the 6.xx release was written as an object oriented set of\nmodules which are much more powerful than the older functional interface. For backward\ncompatibility, a new functional interface was rewritten (which is simply a set of wrapper\nfunctions which call the OO methods) which is almost entirely backward compatible with the\nversion 5.xx interface.\n\nThe Date::Manip distribution includes all three of these interfaces: the older version 5\ninterface, and both the new OO interface and the backward compatible functional interface. Also,\nall three are installed, so you can use whichever interface is appropriate.\n\nSince there are three different interfaces available, choosing the interface is the necessary.\n\nIf you are running on a system with a very old version of perl (older than 5.10), the version 5\ninterface is your only option.\n\nIf you are on a system running a newer version of perl, but need to support a script that was\nwritten using the functional interface, then you can use the version 6 functional interface.\n\nFor everyone else, it is strongly recommended that you use the object-oriented interface.\n\nA more detailed description of each interface is included below. If you already know which\ninterface you want to use, just go to the \"SEE ALSO\" in Date::Manip section for documentation\nfor each interface.\n\nFUNCTIONAL INTERFACE (VERSION 5)\nWhen using a version of perl older than 5.10, this is the only interface available. This\ninterface is documented in the Date::Manip::DM5 document. This interface has several weaknesses\nthat need to be understood when using it:\n\nLimited Support\nThe version 5 functional interface is no longer being developed, and only limited support is\navailable for it.\n\nAs of December 2012, no development will be done, and I will not correct any remaining bugs\nin version 5. If a patch is supplied by someone else to fix bugs, I will apply it, provided\nit applies cleanly, and the resulting code continues to pass all tests. I will not apply\npatches to add features.\n\nI will continue to distribute version 5 for several years. I do not have a date in mind\nwhere version 5 will be removed.\n\nLimited Time Zone Support\nTime zone support is extremely limited, and is often incorrect. The lack of time zone\nsupport was the primary reason for rewriting Date::Manip.\n\nThe version 5 interface does not handle daylight saving time changes correctly.\n\nPerformance Issues\nConsiderable time has been spent speeding up Date::Manip, and fairly simple benchmarks show\nthat version 6 is around twice as fast as version 5.\n\nFeel free to email me concerns and comments.\n\nFUNCTIONAL INTERFACE (VERSION 6)\nThe version 6 functional interface is almost completely identical to the version 5 functional\ninterface, except that it uses the object-oriented modules to do all the real work.\n\nTime zone support is greatly improved, but is still somewhat limited. Since the version 6\ninterface is backward compatible, dates do not store time zone information in them, so the\nprogrammer is responsible for keeping track of what time zone each date is in. If you want full\naccess to the time zone support offered in Date::Manip, you have to use the object-oriented\ninterface.\n\nFor the most part, scripts written for older versions of Date::Manip will continue to work (and\nscripts written for the version 6 functional interface will run with the version 5 interface),\nhowever in a few cases, you may need to modify your scripts. Please refer to the\nDate::Manip::Migration5to6 document for a list of changes which may be necessary.\n",
                "subsections": []
            },
            "OBJECT-ORIENTED INTERFACE": {
                "content": "As of 6.00, Date::Manip consists of a set of OO modules. Each have their own document (see the\n\"SEE ALSO\" in Date::Manip section).\n\nThe OO interface consists of the following modules: Date::Manip::Date, Date::Manip::Delta,\nDate::Manip::Recur, Date::Manip::TZ, and Date::Manip::Base.\n\nThe object-oriented interface is the only way to get the full functionality of Date::Manip. It\nfully support time zones (and daylight saving time).\n",
                "subsections": []
            },
            "SELECTING AN INTERFACE": {
                "content": "If you are running an older version of perl, the version 5 functional interface is the only one\navailable to you, and it will automatically be used.\n\nIf you are running a newer version of perl (5.10 or higher), you can use the object-oriented\nmodules by loading them directly, or you can use a functional interface.\n\nIf you use a functional interface, it will default to the version 6 interface, but you can\nchoose to run the version 5 interface in one of three ways:\n\nUsing the OO interface\nBy including any of the following:\n\nuse Date::Manip::Date;\nuse Date::Manip::Delta;\nuse Date::Manip::Recur;\nuse Date::Manip::TZ;\nuse Date::Manip::Base;\n\nyou have access to the OO interface for the appropriate types of objects.\n\nUse the default functional interface\nBy including:\n\nuse Date::Manip;\n\nin your script, one of the functional interfaces will be loaded. If you are running a\nversion of perl older than 5.10, it will automatically be the version 5 interface. If you\nare running a newer version of perl, it will automatically load the version 6 interface.\n\nDATEMANIP environment variable\nBy setting the DATEMANIP environment variable to 'DM5' before running the perl script, the\nversion 5 interface will be used.\n\nDate::Manip::Backend variable\nAlternately, you can set the Date::Manip::Backend variable to be 'DM5' before loading the\nmodule. Typically, this will be done in the following way:\n\nBEGIN {\n$Date::Manip::Backend = 'DM5';\n}\nuse Date::Manip;\n\nOnce a functional interface is loaded, you cannot switch between the version 5 and version 6\ninterfaces.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "Date::Manip - main module documentation\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "This script is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Sullivan Beck (sbeck@cpan.org)\n",
                "subsections": []
            }
        }
    }
}