{
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "perl-Perl-Critic-0.1.140-1.oe2403sp3.aarch64.rpm",
  "spdxVersion": "SPDX-2.2",
  "creationInfo": {
    "created": "2026-05-14T13:11:03.911431983Z",
    "creators": [
      "openeuler_creator"
    ]
  },
  "dataLicense": "CC0-1.0",
  "documentNamespace": "https://sbom.openEuler.org/perl-Perl-Critic-0.1.140-1.oe2403sp3.aarch64.rpm",
  "packages": [
    {
      "SPDXID": "SPDXRef-rpm-hunspell-1.7.0",
      "name": "hunspell",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "69eaa4a6cc38ec9658e43549696ed4e6c70f9440661a868918c72791d1f9681d"
        }
      ],
      "description": "Hunspell is a free spell checker and morphological analyzer library and\ncommand-line tool, licensed under LGPL/GPL/MPL tri-license.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/hunspell@1.7.0-11.oe2403sp3?arch=x86_64&epoch=0&upstream=hunspell-1.7.0-11.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://github.com/hunspell/hunspell",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "A spell checker and morphological analyzer library",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.7.0-11.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-5.38.0",
      "name": "perl",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "db6ec701b8fda17b36abd847ea905dc4705255ac160039b9db87fe4cd96c7dca"
        }
      ],
      "description": "Perl 5 is a highly capable, feature-rich programming language with over 30 years of development.\nPerl 5 runs on over 100 platforms from portables to mainframes and is suitable for both rapid\nprototyping and large scale development projects.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl@5.38.0-10.oe2403sp3?arch=x86_64&epoch=4&upstream=perl-5.38.0-10.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://www.perl.org/",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "A highly capable, feature-rich programming language",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "4:5.38.0-10.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-B-Keywords-1.26",
      "name": "perl-B-Keywords",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "c7b297cf477657372cea359773ecfd0926049f1586c94e91420b2cfce8d587f7"
        }
      ],
      "description": "Keyword provides an array of several exportable keywords",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-B-Keywords@1.26-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-B-Keywords-1.26-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/B-Keywords",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Lists of reserved barewords and symbol names",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.26-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Carp-1.50",
      "name": "perl-Carp",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "4ac965d1345ff6da3f87871ca778d8e05c0ffb21096323c79665edbb380b1276"
        }
      ],
      "description": "The Carp routines are useful in your own modules because they act like\ndie() or warn(), but with a message which is more likely to be useful\nto a user of your module.  In the case of cluck, confess, and longmess\nthat context is a summary of every call in the call-stack.  For a shorter\nmessage you can use carp or croak which report the error as being from\nwhere your module was called.  There is no guarantee that that is where\nthe error was, but it is a good educated guess.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Carp@1.50-420.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Carp-1.50-420.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Carp",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Alternative warn and die for modules",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.50-420.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Config-Tiny-2.29",
      "name": "perl-Config-Tiny",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "00e66982aef0672f6c5afcd7246d20b79cce248c7e67f45a61680401bbeb894f"
        }
      ],
      "description": "Config::Tiny is a Perl class to read and write .ini style\nconfiguration files with as little code as possible, reducing load\ntime and memory overhead.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Config-Tiny@2.29-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Config-Tiny-2.29-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "http://search.cpan.org/dist/Config-Tiny/",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Read/Write .ini style files with as little code as possible",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:2.29-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Exception-Class-1.45",
      "name": "perl-Exception-Class",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "b55f89afd35b0e503d49b27a0d9e8ecad2b3a0fe1e7dbe9fa7260a88c072ef29"
        }
      ],
      "description": "Exception::Class allows you to declare exception hierarchies in your\nmodules in a \"Java-esque\" manner.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Exception-Class@1.45-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Exception-Class-1.45-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Exception-Class",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Module that allows you to declare real exception classes in Perl",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.45-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Exporter-5.77",
      "name": "perl-Exporter",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "67b2be830da6940a71ce5d91c45cda7790b617ae87936bf664093e242557780c"
        }
      ],
      "description": "The Exporter module implements an import method which allows a module to\nexport functions and variables to its users' name spaces. Many modules use\nExporter rather than implementing their own import method because Exporter\nprovides a highly flexible interface, with an implementation optimized for\nthe common case.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Exporter@5.77-2.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Exporter-5.77-2.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Exporter",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Implements default import method for modules",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:5.77-2.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-File-Path-2.18",
      "name": "perl-File-Path",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "7d787cbd1650754806f7912ffea345bad705b2213cc0b4f256818c851c8438c2"
        }
      ],
      "description": "This module provides a convenient way to create directories\nof arbitrary depth and to delete an entire directory subtree\nfrom the filesystem.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-File-Path@2.18-2.oe2403sp3?arch=noarch&epoch=0&upstream=perl-File-Path-2.18-2.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/pod/File::Path",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Create or remove directory trees",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:2.18-2.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-File-Temp-0.2311",
      "name": "perl-File-Temp",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "f1f2c48238559621b8ebe431db54bdb686eb5b88ac39e0a0419295e703b07d89"
        }
      ],
      "description": "File::Temp can be used to create and open temporary files in a safe way.\nThere is both a function interface and an object-oriented interface. The\nFile::Temp constructor or the tempfile() function can be used to return the\nname and the open file handle of a temporary file. The tempdir() function\ncan be used to create a temporary directory.\n\nThe security aspect of temporary file creation is emphasized such that a\nfilehandle and filename are returned together.\nThis helps guarantee that a race condition can not occur where the temporary\nfile is created by another process between checking for the existence of the\nfile and its opening. Additional security levels are provided to check,\nfor example, that the sticky bit is set on world writable directories.\nSee \"safe_level\" for more information.\n\nFor compatibility with popular C library functions, Perl implementations of\nthe mkstemp() family of functions are provided. These are, mkstemp(),\nmkstemps(), mkdtemp() and mktemp().\n\nAdditionally, implementations of the standard POSIX tmpnam() and tmpfile()\nfunctions are provided if required.\n\nImplementations of mktemp(), tmpnam(), and tempnam() are provided, but should\nbe used with caution since they return only a filename that was valid when\nfunction was called, so cannot guarantee that the file will not exist by the\ntime the caller opens the filename.\n\nFilehandles returned by these functions support the seekable methods.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-File-Temp@0.2311-3.oe2403sp3?arch=noarch&epoch=1&upstream=perl-File-Temp-0.2311-3.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/File-Temp",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Return name and handle of a temporary file safely",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "1:0.2311-3.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-File-Which-1.27",
      "name": "perl-File-Which",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "71d77ec7e402c470d4621d86a3ece5bfa8e9adfd8cfc0ed93ce56d54caacf0d4"
        }
      ],
      "description": "File::Which finds the full or relative paths to executable programs on the system. This is\nnormally the function of which utility. which is typically implemented as either a program\nor a built in shell command. On some platforms, such as Microsoft Windows it is not provided\nas part of the core operating system. This module provides a consistent API to this\nfunctionality regardless of the underlying platform.\n\nThe focus of this module is correctness and portability. As a consequence platforms where the\ncurrent directory is implicitly part of the search path such as Microsoft Windows will find\nexecutables in the current directory, whereas on platforms such as UNIX where this is not the\ncase executables in the current directory will only be found if the current directory is\nexplicitly added to the path.\n\nIf you need a portable which on the command line in an environment that does not provide it,\ninstall App::pwhich which provides a command line interface to this API.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-File-Which@1.27-2.oe2403sp3?arch=noarch&epoch=0&upstream=perl-File-Which-1.27-2.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/File-Which",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Perl implementation of the which utility as an API",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.27-2.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Getopt-Long-2.57",
      "name": "perl-Getopt-Long",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "fb446d10da8dfa8fdaff0ffe645e2bffe2ef3d078748d2cea0656802e84edbfe"
        }
      ],
      "description": "Module Getopt::Long implements an extended getopt function called\nGetOptions(). This function implements the POSIX standard for command\nline options, with GNU extensions, while still capable of handling\nthe traditional one-letter options.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Getopt-Long@2.57-1.oe2403sp3?arch=noarch&epoch=1&upstream=perl-Getopt-Long-2.57-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/pod/Getopt::Long",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Extended processing of command line options",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "1:2.57-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-IO-String-1.08",
      "name": "perl-IO-String",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "ac029727143e5f051f4e2e1f4eb63394e7e8850c966656c8f60e94c145543d8b"
        }
      ],
      "description": "The IO-String provides the IO::File interface for in-core strings.\nAn IO::String object can be attached to a string, and makes it\njust like normal file for reading and writing.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-IO-String@1.08-35.oe2403sp3?arch=noarch&epoch=0&upstream=perl-IO-String-1.08-35.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "http://search.cpan.org/dist/IO-String/",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Emulate file interface for in-core strings",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.08-35.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-List-MoreUtils-0.430",
      "name": "perl-List-MoreUtils",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "849696c5e61ff13d7a0ad294c85ff625cd20ca7f1fc40e113c055099a89bec68"
        }
      ],
      "description": "List::MoreUtils provides some trivial but commonly needed functionality on lists which is not going to go into List::Util.\nAll of the below functions are implementable in only a couple of lines of Perl code.\nUsing the functions from this module however should give slightly better performance as everything is implemented in C.\nThe pure-Perl implementation of these functions only serves as a fallback in case the C portions of this module couldn't be compiled on this machine.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-List-MoreUtils@0.430-2.oe2403sp3?arch=noarch&epoch=0&upstream=perl-List-MoreUtils-0.430-2.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/List-MoreUtils",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Provide the stuff missing in List::Util",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:0.430-2.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Module-Pluggable-5.2",
      "name": "perl-Module-Pluggable",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "af680192ab42a0bb772bb6ea1cc675073323cd4da4839a62763d44e6da70080c"
        }
      ],
      "description": "Provides a simple but, hopefully, extensible way of having 'plugins' for your module.\nobviously this isn't going to be the be all and end all of solutions but is works for me\nEssentially all it does is export a method into your namespace that looks.\nthrough a search path for .pm files and turn those into class names.\nOptionally it instantiates those classes for you.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Module-Pluggable@5.2-10.oe2403sp3?arch=noarch&epoch=2&upstream=perl-Module-Pluggable-5.2-10.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Module-Pluggable",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Automatically give your module the ability to have plugins",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "2:5.2-10.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-PPI-1.277",
      "name": "perl-PPI",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "29318de82db0fd240a8f3f9e4a1527587de591e2a292ea5815b59c9c861759fb"
        }
      ],
      "description": "Parse, analyze and manipulate Perl (without perl).",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-PPI@1.277-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-PPI-1.277-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/PPI",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Parse, Analyze and Manipulate Perl",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.277-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-PPIx-QuoteLike-0.023",
      "name": "perl-PPIx-QuoteLike",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "7e2c290a98cf90062d5664332b76c66d360478618d9fad51767dc15edf060ae8"
        }
      ],
      "description": "This Perl class parses Perl string literals and things that are reasonably\nlike string literals. Its real reason for being is to find interpolated\nvariables for Perl::Critic policies and similar code.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-PPIx-QuoteLike@0.023-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-PPIx-QuoteLike-0.023-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/PPIx-QuoteLike",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Parse Perl string literals and string-literal-like things",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:0.023-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-PPIx-Regexp-0.088",
      "name": "perl-PPIx-Regexp",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "7f05d6c99f51521121544d0a2df03e62c41eca36f185dc3ff36e53d0ce4d827f"
        }
      ],
      "description": "The purpose of the PPIx-Regexp package is to parse regular expressions in a\nmanner similar to the way the PPI package parses Perl. This class forms the\nroot of the parse tree, playing a role similar to PPI::Document.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-PPIx-Regexp@0.088-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-PPIx-Regexp-0.088-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/PPIx-Regexp",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Represent a regular expression of some sort",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:0.088-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-PPIx-Utilities-1.001000",
      "name": "perl-PPIx-Utilities",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "fc10fcf6eaca401fb497c2998f5708fb4e9b275a462b81e9b04e901bd3e28a51"
        }
      ],
      "description": "This is a collection of functions for dealing with PPI objects, many of\nwhich originated in Perl::Critic. They are organized into modules by the\nkind of PPI class they relate to, by replacing the \"PPI\" at the front of\nthe module name with \"PPIx::Utilities\", e.g. functionality related to\nPPI::Nodes is in PPIx::Utilities::Node.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-PPIx-Utilities@1.001000-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-PPIx-Utilities-1.001000-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/PPIx-Utilities",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Extensions to PPI",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.001000-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-PathTools-3.89",
      "name": "perl-PathTools",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "16349a1e801b8bd8bfddee9e461101fbccfc363292a70b234323592ea29037a8"
        }
      ],
      "description": "Tools for working with directory and file names.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-PathTools@3.89-1.oe2403sp3?arch=x86_64&epoch=0&upstream=perl-PathTools-3.89-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/PathTools",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "PathTools Perl Module (Cwd, File::Spec)",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:3.89-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "name": "perl-Perl-Critic",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "57c2c30ebf4b2e506750bdd0be6bd3a1a5dbcdcb01c7fbdd4df79602e1d4f916"
        }
      ],
      "description": "Perl::Critic is an extensible framework for creating and applying coding\nstandards to Perl source code. Essentially, it is a static source code\nanalysis engine. Perl::Critic is distributed with a number of\nPerl::Critic::Policy modules that attempt to enforce various coding\nguidelines. Most Policy modules are based on Damian Conway's book Perl\nBest Practices. However, Perl::Critic is not limited to PBP and will\neven support Policies that contradict Conway. You can enable, disable,\nand customize those Polices through the Perl::Critic interface. You can\nalso create new Policy modules that suit your own tastes.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Perl-Critic@1.140-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Perl-Critic-1.140-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Perl-Critic",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Critique Perl source code for best-practices",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.140-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Perl-Tidy-20240202",
      "name": "perl-Perl-Tidy",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "8df72b37bb3852256ca7b0c2b4143f010c27e0359df63a123c6549e3025ef06e"
        }
      ],
      "description": "This module makes the functionality of the perltidy utility available to\nperl scripts. Any or all of the input parameters may be omitted, in which\ncase the @ARGV array will be used to provide input parameters as described\nin the perltidy(1) man page.\n\nFor example, the perltidy script is basically just this:\n\n    use Perl::Tidy;\n    Perl::Tidy::perltidy();",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Perl-Tidy@20240202-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Perl-Tidy-20240202-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Perl-Tidy",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Parses and beautifies perl source",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:20240202-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Pod-Parser-1.66",
      "name": "perl-Pod-Parser",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "47436208d169e7a6f6b0d188b712b89df517e29b90346853055f6c0ae5d3b320"
        }
      ],
      "description": "This software distribution contains the packages for using Perl5 POD (Plain\nOld Documentation). See the \"perlpod\" and \"perlsyn\" manual pages from your\nPerl5 distribution for more information about POD.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Pod-Parser@1.66-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Pod-Parser-1.66-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "http://search.cpan.org/dist/Pod-Parser/",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Basic perl modules for handling Plain Old Documentation (POD)",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.66-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Pod-Spell-1.26",
      "name": "perl-Pod-Spell",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "14377e0a3350bbdbf930d810a28fef406963d6d58e1a9455cde256d7bfae0650"
        }
      ],
      "description": "Pod::Spell is a Pod formatter whose output is good for spell-checking.\nPod::Spell rather like Pod::Text, except that it doesn't put much\neffort into actual formatting, and it suppresses things that look like\nPerl symbols or Perl jargon (so that your spell-checking program won't\ncomplain about mystery words like \"$thing\" or \"Foo::Bar\" or \"hashref\").",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Pod-Spell@1.26-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Pod-Spell-1.26-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Pod-Spell",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "A formatter for spell-checking POD",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.26-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Pod-Usage-2.03",
      "name": "perl-Pod-Usage",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "8b4e784575385f4f904e7ada2e3f5f6867dfc52cc076030c53f60a40f1c5399d"
        }
      ],
      "description": "Pod2usage will print a usage message for the invoking script (using its embedded pod documentation)\nand then exit the script with the desired exit status. The usage message printed may have any one\nof three levels of \"verboseness\": If the verbose level is 0, then only a synopsis is printed. If\nthe verbose level is 1, then the synopsis is printed along with a description (if present) of the\ncommand line options and arguments. If the verbose level is 2, then the entire manual page is printed.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Pod-Usage@2.03-2.oe2403sp3?arch=noarch&epoch=4&upstream=perl-Pod-Usage-2.03-2.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Pod-Usage",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Print a usage message from embedded pod documentation",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "4:2.03-2.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Readonly-2.05",
      "name": "perl-Readonly",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "9f7292e3d2a75c5e1f18a62fd50ecec6f562d1a5c94a260cc81c694d71427166"
        }
      ],
      "description": "This is a facility for creating non-modifiable variables. This is useful for\nconfiguration files, headers, etc. It can also be useful as a development and\ndebugging tool for catching updates to variables that should not be changed.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Readonly@2.05-8.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Readonly-2.05-8.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Readonly",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Facility for creating read-only scalars, arrays, hashes",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:2.05-8.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Scalar-List-Utils-1.63",
      "name": "perl-Scalar-List-Utils",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "fac57ac6918d9fe1ef74832897d9f5fc6497a0a4d9b25e9592a187a023333a24"
        }
      ],
      "description": "This package contains a selection of subroutines that people have\nexpressed would be nice to have in the perl core, but the usage would not\nreally be high enough to warrant the use of a keyword, and the size so\nsmall such that being individual extensions would be wasteful.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Scalar-List-Utils@1.63-1.oe2403sp3?arch=x86_64&epoch=4&upstream=perl-Scalar-List-Utils-1.63-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Scalar-List-Utils",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Common Scalar and List utility subroutines",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "4:1.63-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-String-Format-1.18",
      "name": "perl-String-Format",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "e8a4b1688a53e40c9aadbbcb606f4d84bdc284a7edc160a2d06e688d15ac47a4"
        }
      ],
      "description": "String::Format lets you define arbitrary printf-like format sequences to be\nexpanded. This module would be most useful in configuration files and\nreporting tools, where the results of a query need to be formatted in a\nparticular way. It was inspired by mutt's index_format and related\ndirectives (see <URL:http://www.mutt.org/doc/manual/manual-\n6.html#index_format>).",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-String-Format@1.18-1.oe2403sp3?arch=noarch&epoch=0&upstream=perl-String-Format-1.18-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "http://search.cpan.org/dist/String-Format/",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Sprintf-like string formatting capabilities with arbitrary format definitions",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:1.18-1.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Term-ANSIColor-5.01",
      "name": "perl-Term-ANSIColor",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "5762ec8472ca2a875c5db049038c220558f8e786d8287fd06412eac84bc01c9d"
        }
      ],
      "description": "This Perl module is a simple and convenient interface to the ANSI terminal escape sequences for\ncolor (from ECMA-48, also included in ISO 6429). The color sequences are provided in two forms,\neither as constants for each color or via a function that takes the names of colors and returns\nthe appropriate escape codes or wraps them around the provided text. The non-color text style\ncodes from ANSI X3.64 (bold, dark, underline, and reverse, for example), which were also included\nin ECMA-48 and ISO 6429, are also supported. Also supported are the extended colors used for\nsixteen-color and 256-color emulators.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Term-ANSIColor@5.01-2.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Term-ANSIColor-5.01-2.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Term-ANSIColor",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Color screen output using ANSI escape sequences",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:5.01-2.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-Text-ParseWords-3.30",
      "name": "perl-Text-ParseWords",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "10f1cf3208f529fac610582f1e8ec974ba4e7aae7c43d0c9427751127c9fc26b"
        }
      ],
      "description": "The &nested_quotewords() and &quotewords() functions accept a delimiter (which\ncan be a regular expression) and a list of lines and then breaks those lines up\ninto a list of words ignoring delimiters that appear inside quotes. &quotewords()\nreturns all of the tokens in a single long list, while &nested_quotewords()\nreturns a list of token lists corresponding to the elements of @lines.\n&parse_line() does tokenizing on a single string. The &*quotewords() functions\nsimply call &parse_line(), so if you're only splitting one line you can call\n&parse_line() directly and save a function call.\n\nThe $keep argument is a boolean flag. If true, then the tokens are split on the\nspecified delimiter, but all other characters (including quotes and backslashes)\nare kept in the tokens. If $keep is false then the &*quotewords() functions\nremove all quotes and backslashes that are not themselves backslash-escaped or\ninside of single quotes (i.e., &quotewords() tries to interpret these characters\njust like the Bourne shell). NB: these semantics are significantly different\nfrom the original version of this module shipped with Perl 5.000 through 5.004.\nAs an additional feature, $keep may be the keyword \"delimiters\" which causes the\nfunctions to preserve the delimiters in each string as tokens in the token lists,\nin addition to preserving quote and backslash characters.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-Text-ParseWords@3.30-420.oe2403sp3?arch=noarch&epoch=0&upstream=perl-Text-ParseWords-3.30-420.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/Text-ParseWords",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Parse text into an array of tokens or array of arrays",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "0:3.30-420.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-libs-5.38.0",
      "name": "perl-libs",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "bbddb64223440ac51d3a031901f2ebd81372666046191f404bb254e28c528307"
        }
      ],
      "description": "This package is the shared library for perl.",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-libs@5.38.0-10.oe2403sp3?arch=x86_64&epoch=4&upstream=perl-5.38.0-10.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://www.perl.org/",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "The libraries for the perl",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "4:5.38.0-10.oe2403sp3"
    },
    {
      "SPDXID": "SPDXRef-rpm-perl-version-0.99.30",
      "name": "perl-version",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "0c2fb1f23cac035894a2d741ee9b47b858f27fb8cb7f097c05b4e801c39c925d"
        }
      ],
      "description": "Version objects were added to Perl in 5.10. This module implements\nversion objects for older version of Perl and provides the version\nobject API for all versions of Perl. All previous releases before 0.74\nare deprecated and should not be used due to incompatible API changes.\nVersion 0.77 introduces the new 'parse' and 'declare' methods to\nstandardize usage. You are strongly urged to set 0.77 as a minimum\nin your code, e.g.\nuse version 0.77; # even for Perl v.5.10.0",
      "downloadLocation": "NOASSERTION",
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:rpm/perl-version@0.99.30-1.oe2403sp3?arch=x86_64&epoch=8&upstream=perl-version-0.99.30-1.oe2403sp3.src.rpm",
          "referenceType": "purl"
        }
      ],
      "filesAnalyzed": false,
      "homepage": "https://metacpan.org/release/version",
      "sourceInfo": "acquired package info from repodata DB: repodata/1884cb0675d766cb1ea3a90cf36ea6d3dfc5e5497f6f1351d21c61704c368e98-primary.sqlite.bz2",
      "summary": "Perl extension for Version Objects",
      "supplier": "Organization: http://openeuler.org",
      "versionInfo": "8:0.99.30-1.oe2403sp3"
    }
  ],
  "relationships": [
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-hunspell-1.7.0"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-5.38.0"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-B-Keywords-1.26"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Carp-1.50"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Config-Tiny-2.29"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Exception-Class-1.45"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Exporter-5.77"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-File-Path-2.18"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-File-Temp-0.2311"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-File-Which-1.27"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Getopt-Long-2.57"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-IO-String-1.08"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-List-MoreUtils-0.430"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Module-Pluggable-5.2"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-PPI-1.277"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-PPIx-QuoteLike-0.023"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-PPIx-Regexp-0.088"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-PPIx-Utilities-1.001000"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-PathTools-3.89"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Perl-Critic-1.140"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Perl-Tidy-20240202"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Pod-Parser-1.66"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Pod-Spell-1.26"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Pod-Usage-2.03"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Readonly-2.05"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Scalar-List-Utils-1.63"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-String-Format-1.18"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Term-ANSIColor-5.01"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-Text-ParseWords-3.30"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-libs-5.38.0"
    },
    {
      "spdxElementId": "SPDXRef-rpm-perl-Perl-Critic-1.140",
      "relationshipType": "DEPENDS_ON",
      "relatedSpdxElement": "SPDXRef-rpm-perl-version-0.99.30"
    }
  ]
}
