Subject: [bug#67963] [PATCH v2 17/37] gnu: Add perl-package-variant.

From: Felix Lechner <[email-masked]>
Date: Tue, 16 Jan 2024 14:12:55 -0800

* gnu/packages/perl.scm (perl-package-variant): New variable.

Change-Id: Ia9a35b63a3e57e854455467730f31164504bb1f3
---
 gnu/packages/perl.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index dec4fca2bc..b510baccaa 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -8753,6 +8753,38 @@ (define-public perl-package-stash-xs
 compiler.")
     (license (package-license perl))))
 
+(define-public perl-package-variant
+  (package
+    (name "perl-package-variant")
+    (version "1.003002")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/M/MS/MSTROUT/Package-Variant-" version
+             ".tar.gz"))
+       (sha256
+        (base32 "1p1n2ny5fb15bcbykyn523w6sv968gqs7nhjfm36dpac5yfq9vdj"))))
+    (build-system perl-build-system)
+    (native-inputs (list perl-test-fatal))
+    (propagated-inputs (list perl-import-into
+                             perl-module-runtime
+                             perl-strictures-2))
+    (home-page "https://metacpan.org/release/Package-Variant")
+    (synopsis "Parameterizable packages")
+    (description "This module allows you to build a variable package that
+contains a package template and can use it to build variant packages at
+runtime.
+
+Your variable package will export a subroutine which will build a variant
+package, combining its arguments with the template, and return the name
+of the new variant package.
+
+The implementation does not care about what kind of packages it builds,
+be they simple function exporters, classes, singletons or something
+entirely different.")
+    (license license:perl-license)))
+
 (define-public perl-padwalker
   (package
     (name "perl-padwalker")
-- 
2.41.0