{
	"SPDXID":"SPDXRef-DOCUMENT",
	"name":"perl-Test-Harness-2.3.48-1.oe2409.aarch64.rpm",
	"spdxVersion":"SPDX-2.2",
	"creationInfo":{
		"created":"2024-09-30T03:30:07.5589037Z",
		"creators":"[openeuler_creator]"
	},
	"dataLicense":"CC0-1.0",
	"documentNamespace":"https://repo.openeuler.org/security/data/sbom/perl-Test-Harness-2.3.48-1.oe2409.aarch64.rpm",
	"packages":[
		{
			"SPDXID":"SPDXRef-rpm-perl-5.38.0-3373dd29-00bf-4751-bc96-5b01fbd1f07c-8c6ad11b-d1ca-404a-aec4-e5d37004b523",
			"name":"perl",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"1cc1d4df3e2feb90c5250bb3619d63d60b9ec82bb75e180bdeecccce97e37e91"
				}
			],
			"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-8.oe2409?arch=aarch64&epoch=4&upstream=perl-5.38.0-8.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://www.perl.org/",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"A highly capable, feature-rich programming language",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"4:5.38.0-8.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-Carp-1.50-26fa9174-9324-4e80-b10e-6a723f948447-e9cb9abe-aaaa-4b2a-98bc-4413aecdf674",
			"name":"perl-Carp",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"69af162dfeeb16b0cebb19c6d06eb6e9aa135770713b8e734f306846b16d2fdd"
				}
			],
			"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.oe2409?arch=noarch&epoch=0&upstream=perl-Carp-1.50-420.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/release/Carp",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"Alternative warn and die for modules",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"0:1.50-420.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-Exporter-5.77-d803843f-f243-40ee-be4f-bc9d7d367726-3c4b1d45-efb8-423f-8e34-8c7ebb35946b",
			"name":"perl-Exporter",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"ba7dc3337d0b20c37931089d741716b05e8f6dfbabfed0d85c5f2be371a8a6d5"
				}
			],
			"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-1.oe2409?arch=noarch&epoch=0&upstream=perl-Exporter-5.77-1.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/release/Exporter",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"Implements default import method for modules",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"0:5.77-1.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-File-Path-2.18-ccb0451a-6141-4311-b643-6178d50deb7f-a24f08ca-88fb-4d85-b995-d937a890d38d",
			"name":"perl-File-Path",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"c871d9773e469dc912d91802441e3338a4a7b5a41ab7c2a3aa0e1368ab2235eb"
				}
			],
			"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.oe2409?arch=noarch&epoch=0&upstream=perl-File-Path-2.18-2.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/pod/File::Path",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"Create or remove directory trees",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"0:2.18-2.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-Getopt-Long-2.57-7543f068-83c3-48da-8b41-70faad8865aa-998b0674-ae01-4a68-ac8a-7d7440e25ad7",
			"name":"perl-Getopt-Long",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"1e734a72588e3b97d3a3ac3a7b2eec76ac90d3cc1d83969594a35a4779cb34f7"
				}
			],
			"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.oe2409?arch=noarch&epoch=1&upstream=perl-Getopt-Long-2.57-1.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/pod/Getopt::Long",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"Extended processing of command line options",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"1:2.57-1.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-PathTools-3.89-cc522244-5a11-4d7c-aa3d-ae4923e4d525-67d546b1-36e9-46e4-8812-58cc6a27e681",
			"name":"perl-PathTools",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"87846dab0cb6f2aaf26113fff0ebcf650b1e30c122ad5a19b9c9b5fc41be50ab"
				}
			],
			"description":"Tools for working with directory and file names.",
			"downloadLocation":"NOASSERTION",
			"externalRefs":[
				{
					"referenceCategory":"PACKAGE_MANAGER",
					"referenceLocator":"pkg:rpm/perl-PathTools@3.89-1.oe2409?arch=aarch64&epoch=0&upstream=perl-PathTools-3.89-1.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/release/PathTools",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"PathTools Perl Module (Cwd, File::Spec)",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"0:3.89-1.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"name":"perl-Test-Harness",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"98b3043ce61cb576d8b7991c464e009835ff867984866e24427f16f1da027192"
				}
			],
			"description":"This package allows tests to be run and results automatically aggregated and\noutput to STDOUT.",
			"downloadLocation":"NOASSERTION",
			"externalRefs":[
				{
					"referenceCategory":"PACKAGE_MANAGER",
					"referenceLocator":"pkg:rpm/perl-Test-Harness@3.48-1.oe2409?arch=noarch&epoch=2&upstream=perl-Test-Harness-3.48-1.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/release/Test-Harness",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"Run Perl standard test scripts with statistics",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"2:3.48-1.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-Text-ParseWords-3.30-f8b283b1-4450-4d20-a638-3c4f94599937-afcf1d19-e2c2-40cd-818b-dfaadb49b6da",
			"name":"perl-Text-ParseWords",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"1a6fe3b581b3af139f08664f94dc332e9e42852bd77bd27a7eb67bf028010efc"
				}
			],
			"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.oe2409?arch=noarch&epoch=0&upstream=perl-Text-ParseWords-3.30-420.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/release/Text-ParseWords",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-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.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-constant-1.33-e2cc0cf2-484f-4a09-993f-8785b84e36b0-e62bcabb-27ae-4f57-9bba-c59651b58a3f",
			"name":"perl-constant",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"e0d2c06f6fcf164ddf6d32c7709fe92f37b9ab309abefc33fed273516c0f5cd1"
				}
			],
			"description":"This pragma allows you to declare constants at compile-time.\nWhen a constant is used in an expression, Perl replaces it with its\nvalue at compile time, and may then optimize the expression further.\nIn particular, any code in an \"if (CONSTANT)\" block will be optimized\naway if the constant is false.",
			"downloadLocation":"NOASSERTION",
			"externalRefs":[
				{
					"referenceCategory":"PACKAGE_MANAGER",
					"referenceLocator":"pkg:rpm/perl-constant@1.33-422.oe2409?arch=noarch&epoch=0&upstream=perl-constant-1.33-422.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://metacpan.org/release/constant",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"Perl pragma to declare constants",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"0:1.33-422.oe2409"
		},
		{
			"SPDXID":"SPDXRef-rpm-perl-libs-5.38.0-7fdc2fc9-5bac-4a1d-a41c-6c102fdcce47-bb0670ae-1075-4739-a112-8b170dd03fe9",
			"name":"perl-libs",
			"checksums":[
				{
					"algorithm":"SHA256",
					"checksumValue":"767b285aad322c1f004fa698cf646f37bf052c9caaafecbbdf567655466b12f2"
				}
			],
			"description":"This package is the shared library for perl.",
			"downloadLocation":"NOASSERTION",
			"externalRefs":[
				{
					"referenceCategory":"PACKAGE_MANAGER",
					"referenceLocator":"pkg:rpm/perl-libs@5.38.0-8.oe2409?arch=aarch64&epoch=4&upstream=perl-5.38.0-8.oe2409.src.rpm",
					"referenceType":"purl"
				}
			],
			"filesAnalyzed":false,
			"homepage":"https://www.perl.org/",
			"sourceInfo":"acquired package info from repodata DB: repodata/6e742f68b2ae62313d1861c02b7faa39b44c963cbbc6ac979fb577de9af9babc-primary.sqlite.bz2",
			"summary":"The libraries for the perl",
			"supplier":"Organization: http://openeuler.org",
			"versionInfo":"4:5.38.0-8.oe2409"
		}
	],
	"relationships":[
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-5.38.0-3373dd29-00bf-4751-bc96-5b01fbd1f07c-8c6ad11b-d1ca-404a-aec4-e5d37004b523"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-Carp-1.50-26fa9174-9324-4e80-b10e-6a723f948447-e9cb9abe-aaaa-4b2a-98bc-4413aecdf674"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-Exporter-5.77-d803843f-f243-40ee-be4f-bc9d7d367726-3c4b1d45-efb8-423f-8e34-8c7ebb35946b"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-File-Path-2.18-ccb0451a-6141-4311-b643-6178d50deb7f-a24f08ca-88fb-4d85-b995-d937a890d38d"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-Getopt-Long-2.57-7543f068-83c3-48da-8b41-70faad8865aa-998b0674-ae01-4a68-ac8a-7d7440e25ad7"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-PathTools-3.89-cc522244-5a11-4d7c-aa3d-ae4923e4d525-67d546b1-36e9-46e4-8812-58cc6a27e681"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-Text-ParseWords-3.30-f8b283b1-4450-4d20-a638-3c4f94599937-afcf1d19-e2c2-40cd-818b-dfaadb49b6da"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-constant-1.33-e2cc0cf2-484f-4a09-993f-8785b84e36b0-e62bcabb-27ae-4f57-9bba-c59651b58a3f"
		},
		{
			"spdxElementId":"SPDXRef-rpm-perl-Test-Harness-3.48-fa465ac6-9b26-404b-bf4f-07c70bdb4938-98ce427d-153a-4c28-8656-9d7d6b850d82",
			"relationshipType":"DEPENDS_ON",
			"relatedSpdxElement":"SPDXRef-rpm-perl-libs-5.38.0-7fdc2fc9-5bac-4a1d-a41c-6c102fdcce47-bb0670ae-1075-4739-a112-8b170dd03fe9"
		}
	]
}