gnu: Add Moose.
[jackhill/guix/guix.git] / gnu / packages / perl.scm
index c596012..44332fe 100644 (file)
     (home-page "http://www.perl.org/")
     (license gpl1+)))                          ; or "Artistic"
 
+(define-public perl-algorithm-diff
+  (package
+    (name "perl-algorithm-diff")
+    (version "1.1903")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TY/TYEMQ/"
+                           "Algorithm-Diff-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0l8pk7ziz72d022hsn4xldhhb9f5649j5cgpjdibch0xng24ms1h"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Algorithm-Diff")
+    (synopsis "Compute differences between two files or lists")
+    (description "This is a module for computing the difference between two
+files, two strings, or any other two lists of things.  It uses an intelligent
+algorithm similar to (or identical to) the one used by the Unix \"diff\"
+program.  It is guaranteed to find the *smallest possible* set of
+differences.")
+    (license (package-license perl))))
+
 (define-public perl-archive-zip
   (package
     (name "perl-archive-zip")
@@ -173,6 +195,27 @@ code or from an external program.  Optionally, output can be teed so that it
 is captured while being passed through to the original file handles.")
     (license asl2.0)))
 
+(define-public perl-class-data-inheritable
+  (package
+    (name "perl-class-data-inheritable")
+    (version "0.08")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TM/TMTM/"
+                           "Class-Data-Inheritable-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jpi38wy5xh6p1mg2cbyjjw76vgbccqp46685r27w8hmxb7gwrwr"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Class-Data-Inheritable")
+    (synopsis "Inheritable, overridable class data")
+    (description "Class::Data::Inheritable is for creating accessor/mutators
+to class data.  That is, if you want to store something about your class as a
+whole (instead of about a single object).  This data is then inherited by your
+subclasses and can be overriden.")
+    (license (package-license perl))))
+
 (define-public perl-class-load
   (package
     (name "perl-class-load")
@@ -226,6 +269,25 @@ names, not Class::Name.  For that, this module provides \"load_class
 Class::Load")
     (license artistic2.0)))
 
+(define-public perl-class-tiny
+  (package
+    (name "perl-class-tiny")
+    (version "1.000")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+                           "Class-Tiny-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jll90byj0nl16hwpf28k54i4n53jidjsj1bnlbx72v0n56qfpb2"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Class-Tiny")
+    (synopsis "Minimalist class construction")
+    (description "This module offers a minimalist class construction kit.  It
+uses no non-core modules for any recent Perl.")
+    (license asl2.0)))
+
 (define-public perl-clone
   (package
     (name "perl-clone")
@@ -247,6 +309,27 @@ objects.")
                               "Clone-" version))
     (license (package-license perl))))
 
+(define-public perl-config-autoconf
+  (package
+    (name "perl-config-autoconf")
+    (version "0.309")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+                           "Config-AutoConf-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1nqc7calfny12dwfhz7ylsvx55nf69kirdc5dbyvh3sjsqj8yvdq"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-capture-tiny" ,perl-capture-tiny)))
+    (home-page "http://search.cpan.org/dist/Config-AutoConf")
+    (synopsis "Module to implement some AutoConf macros in Perl")
+    (description "Config::AutoConf is intended to provide the same
+opportunities to Perl developers as GNU Autoconf does for Shell developers.")
+    (license (package-license perl))))
+
 (define-public perl-cpan-meta-check
   (package
     (name "perl-cpan-meta-check")
@@ -291,6 +374,68 @@ CPAN::Meta object are present.")
      "Data::OptList provides a simple syntax for name/value option pairs.")
     (license (package-license perl))))
 
+(define-public perl-data-tumbler
+  (package
+    (name "perl-data-tumbler")
+    (version "0.008")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+                           "Data-Tumbler-" version ".tar.gz"))
+       (sha256
+        (base32
+         "13kww2xj30rkk8w9h50h4blypdb689zgils0zyah587kip0z6509"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-most" ,perl-test-most)))
+    (propagated-inputs
+     `(("perl-file-homedir" ,perl-file-homedir)))
+    (home-page "http://search.cpan.org/dist/Data-Tumbler")
+    (synopsis "Dynamic generation of nested combinations of variants")
+    (description "Data::Tumbler - Dynamic generation of nested combinations of
+variants")
+    (license (package-license perl))))
+
+(define-public perl-devel-caller
+  (package
+    (name "perl-devel-caller")
+    (version "2.06")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RC/RCLAMP/"
+                           "Devel-Caller-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pxpimifzmnjnvf4icclx77myc15ahh0k56sj1djad1855mawwva"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-padwalker" ,perl-padwalker)))
+    (home-page "http://search.cpan.org/dist/Devel-Caller")
+    (synopsis "Meatier version of caller")
+    (description "Devel::Caller provides meatier version of caller.")
+    (license (package-license perl))))
+
+(define-public perl-devel-checkbin
+  (package
+    (name "perl-devel-checkbin")
+    (version "0.02")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/"
+                           "Devel-CheckBin-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0g71sma9jy0fjm619hcrcsb9spg2y03vjxx36y8k1xpa2553sr7m"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Devel-CheckBin")
+    (synopsis "Check that a command is available")
+    (description "Devel::CheckBin is a perl module that checks whether a
+particular command is available.")
+    (license (package-license perl))))
+
 (define-public perl-devel-globaldestruction
   (package
     (name "perl-devel-globaldestruction")
@@ -312,6 +457,27 @@ CPAN::Meta object are present.")
 equivalent of \"${^GLOBAL_PHASE} eq 'DESTRUCT'\" for older perls.")
     (license (package-license perl))))
 
+(define-public perl-devel-lexalias
+  (package
+    (name "perl-devel-lexalias")
+    (version "0.05")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RC/RCLAMP/"
+                           "Devel-LexAlias-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wpfpjqlrncslnmxa37494sfdy0901510kj2ds2k6q167vadj2jy"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-devel-caller" ,perl-devel-caller)))
+    (home-page "http://search.cpan.org/dist/Devel-LexAlias")
+    (synopsis "Alias lexical variables")
+    (description "Devel::LexAlias provides the ability to alias a lexical
+variable in a subroutines scope to one of your choosing.")
+    (license (package-license perl))))
+
 (define-public perl-devel-overloadinfo
   (package
     (name "perl-devel-overloadinfo")
@@ -336,6 +502,54 @@ operators for a given class (or object), including where in the inheritance
 hierarchy the overloads are declared and where the code implementing it is.")
     (license (package-license perl))))
 
+(define-public perl-devel-partialdump
+  (package
+    (name "perl-devel-partialdump")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+                           "Devel-PartialDump-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nr3qa68x4yp219kd17j1ks9c95qc9agfvz7ddnpn8p78f3kgwfn"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build-tiny" ,perl-module-build-tiny)
+       ("perl-test-warn" ,perl-test-warn)
+       ("perl-test-simple" ,perl-test-simple)))
+    (propagated-inputs
+     `(("perl-class-tiny" ,perl-class-tiny)
+       ("perl-sub-exporter" ,perl-sub-exporter)
+       ("perl-namespace-clean" ,perl-namespace-clean)))
+    (home-page "http://search.cpan.org/dist/Devel-PartialDump")
+    (synopsis "Partial dumping of data structures")
+    (description "This module is a data dumper optimized for logging of
+arbitrary parameters.")
+    (license (package-license perl))))
+
+(define-public perl-devel-stacktrace
+  (package
+    (name "perl-devel-stacktrace")
+    (version "2.00")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
+                           "Devel-StackTrace-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1r65iq5i11xh0r0kp3pdycydnd3kxpdmxnp0hq9hx9lr60kygsqx"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Devel-StackTrace")
+    (synopsis "Object representing a stack trace")
+    (description "The Devel::StackTrace module contains two classes,
+Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the
+information that can be retrieved via Perl's caller() function, as well as
+providing a simple interface to this data.")
+    (license artistic2.0)))
+
 (define-public perl-digest-sha1
   (package
     (name "perl-digest-sha1")
@@ -377,6 +591,60 @@ SHA-1 message digest algorithm for use by Perl programs.")
 modules separately and deal with them after the module is done installing.")
     (license (package-license perl))))
 
+(define-public perl-eval-closure
+  (package
+    (name "perl-eval-closure")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DO/DOY/"
+                           "Eval-Closure-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ssvlgx3y1y28wrrp0lmmffzqxfrwb2lb3p60b8cjvxsf1c3jbfv"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-fatal" ,perl-test-fatal)
+       ("perl-test-requires" ,perl-test-requires)))
+    (propagated-inputs
+     `(("perl-devel-lexalias" ,perl-devel-lexalias)))
+    (home-page "http://search.cpan.org/dist/Eval-Closure")
+    (synopsis "Safely and cleanly create closures via string eval")
+    (description "String eval is often used for dynamic code generation.  For
+instance, Moose uses it heavily, to generate inlined versions of accessors and
+constructors, which speeds code up at runtime by a significant amount.  String
+eval is not without its issues however - it's difficult to control the scope
+it's used in (which determines which variables are in scope inside the eval),
+and it's easy to miss compilation errors, since eval catches them and sticks
+them in $@ instead.  This module attempts to solve these problems.  It
+provides an eval_closure function, which evals a string in a clean
+environment, other than a fixed list of specified variables.  Compilation
+errors are rethrown automatically.")
+    (license (package-license perl))))
+
+(define-public perl-exception-class
+  (package
+    (name "perl-exception-class")
+    (version "1.39")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
+                           "Exception-Class-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10r06v6568s33p6h9f9ml0iabc07id86mjkf74gy7ld6d5m7b741"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-devel-stacktrace" ,perl-devel-stacktrace)
+       ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
+    (home-page "http://search.cpan.org/dist/Exception-Class")
+    (synopsis "Allows you to declare real exception classes in Perl")
+    (description "Exception::Class allows you to declare exception hierarchies
+in your modules in a \"Java-esque\" manner.")
+    (license (package-license perl))))
+
 (define-public perl-exporter-lite
   (package
     (name "perl-exporter-lite")
@@ -398,6 +666,28 @@ import(), @EXPORT and @EXPORT_OK and not a whole lot else.")
                               "Exporter-Lite-" version))
     (license (package-license perl))))
 
+(define-public perl-exporter-tiny
+  (package
+    (name "perl-exporter-tiny")
+    (version "0.042")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/"
+                           "Exporter-Tiny-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0gq2ia8c6n84gdrlc73vab61djs8gs8zf7fqx8cxbg5zxg2j45lg"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Exporter-Tiny")
+    (synopsis "Exporter with the features of Sub::Exporter but only core dependencies")
+    (description "Exporter::Tiny supports many of Sub::Exporter's
+external-facing features including renaming imported functions with the `-as`,
+`-prefix` and `-suffix` options; explicit destinations with the `into` option;
+and alternative installers with the `installler` option.  But it's written in
+only about 40% as many lines of code and with zero non-core dependencies.")
+    (license (package-license perl))))
+
 (define-public perl-extutils-installpaths
   (package
     (name "perl-extutils-installpaths")
@@ -505,6 +795,31 @@ types Perl-related files, or replicating search queries run on a distribution
 in various parts of the CPAN ecosystem.")
     (license (package-license perl))))
 
+(define-public perl-file-homedir
+  (package
+    (name "perl-file-homedir")
+    (version "1.00")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
+                           "File-HomeDir-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hvihydd0y4gdxafi8dpybk9ll8q35bz5ycibfic0gh92cslzfc5"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-file-which" ,perl-file-which)
+       ("perl-file-temp" ,perl-file-temp)))
+    (arguments `(#:tests? #f))          ;Not appropriate for chroot
+    (home-page "http://search.cpan.org/dist/File-HomeDir")
+    (synopsis "Find your home and other directories on any platform")
+    (description "File::HomeDir is a module for locating the directories that
+are \"owned\" by a user (typicaly your user) and to solve the various issues
+that arise trying to find them consistently across a wide variety of
+platforms.")
+    (license (package-license perl))))
+
 (define-public perl-file-list
   (package
     (name "perl-file-list")
@@ -534,6 +849,27 @@ provided base directory and can return files (and/or directories if desired)
 matching a regular expression.")
     (home-page "http://search.cpan.org/~dopacki/File-List/")))
 
+(define-public perl-file-temp
+  (package
+    (name "perl-file-temp")
+    (version "0.2304")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+                           "File-Temp-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1b11scbw77924awwdf5yw8sk8z0s2hskvpyyxws9yz4gwhim6h8k"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-parent" ,perl-parent)))
+    (home-page "http://search.cpan.org/dist/File-Temp")
+    (synopsis "Return name and handle of a temporary file safely")
+    (description "File::Temp can be used to create and open temporary files in
+a safe way.")
+    (license (package-license perl))))
+
 (define-public perl-file-which
   (package
     (name "perl-file-which")
@@ -576,6 +912,26 @@ vaguely inspired by John Ousterhout's Tk_ParseArgv.")
                               "Getopt-Tabular-" version))
     (license (package-license perl))))
 
+(define-public perl-inc-latest
+  (package
+    (name "perl-inc-latest")
+    (version "0.500")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+                           "inc-latest-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04f6qf6ll2hkdsr9aglykg3wlgsnf0w4f264nzg4i9y6cgrhbafs"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/inc-latest")
+    (synopsis "Use modules in inc/ if newer than installed")
+    (description "The inc::latest module helps bootstrap configure-time
+dependencies for CPAN distributions.  These dependencies get bundled into the
+inc directory within a distribution and are used by Makefile.PL or Build.PL.")
+    (license asl2.0)))
+
 (define-public perl-io-tty
   (package
     (name "perl-io-tty")
@@ -619,6 +975,31 @@ Perlish API and none of the bloat and rarely used features of IPC::Run.")
     ;; licenses, any version."
     (license (list bsd-3 gpl3+))))
 
+(define-public perl-list-moreutils
+  (package
+    (name "perl-list-moreutils")
+    (version "0.402")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+                           "List-MoreUtils-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i0k7kqg1m9nf2xvq9l4lyf38fxvi9952vmmvhcdaf3qa95pxb24"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-config-autoconf" ,perl-config-autoconf)
+       ("perl-inc-latest" ,perl-inc-latest)
+       ("perl-test-writevariants" ,perl-test-writevariants)))
+    (propagated-inputs
+     `(("perl-exporter-tiny" ,perl-exporter-tiny)))
+    (home-page "http://search.cpan.org/dist/List-MoreUtils")
+    (synopsis "Provide the stuff missing in List::Util")
+    (description "List::MoreUtils provides some trivial but commonly needed
+functionality on lists which is not going to go into List::Util.")
+    (license (package-license perl))))
+
 (define-public perl-module-build-tiny
   (package
     (name "perl-module-build-tiny")
@@ -699,6 +1080,110 @@ implementations.")
 handling of Perl modules, which are normally handled at compile time.")
     (license (package-license perl))))
 
+(define-public perl-module-runtime-conflicts
+  (package
+    (name "perl-module-runtime-conflicts")
+    (version "0.001")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+                           "Module-Runtime-Conflicts-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0pz23ch78lbpn4kdbm04icgsmbr7jvmxwq1p5m4x2pap8qwd0wqg"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-module-runtime" ,perl-module-runtime)
+       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)))
+    (home-page "http://search.cpan.org/dist/Module-Runtime-Conflicts")
+    (synopsis "Provide information on conflicts for Module::Runtime")
+    (description "This module provides conflicts checking for Module::Runtime,
+which had a recent release that broke some versions of Moose.  It is called
+from Moose::Conflicts and moose-outdated.")
+    (license (package-license perl))))
+
+(define-public perl-moose
+  (package
+    (name "perl-moose")
+    (version "2.1403")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+                                  "Moose-" version ".tar.gz"))
+              (sha256
+               (base32
+                "16iaazikbnq2jjjac84jrdpfzm4qwqg1nbfgs11jlwn84q4jp1n3"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
+       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
+       ("perl-test-cleannamespaces" ,perl-test-cleannamespaces)
+       ("perl-test-fatal" ,perl-test-fatal)
+       ("perl-test-requires" ,perl-test-requires)
+       ("perl-test-warnings" ,perl-test-warnings)))
+    ;; XXX::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+    ;; # === Other Modules ===
+    ;; #
+    ;; #     Module                       Want    Have
+    ;; #     ---------------------------- ---- -------
+    ;; #     Algorithm::C3                 any missing
+    ;; #     DBM::Deep                     any missing
+    ;; #     DateTime                      any missing
+    ;; #     DateTime::Calendar::Mayan     any missing
+    ;; #     DateTime::Format::MySQL       any missing
+    ;; #     Declare::Constraints::Simple  any missing
+    ;; #     Dist::CheckConflicts          any    0.11
+    ;; #     HTTP::Headers                 any missing
+    ;; #     IO::File                      any    1.16
+    ;; #     IO::String                    any missing
+    ;; #     Locale::US                    any missing
+    ;; #     Module::Refresh               any missing
+    ;; #     MooseX::NonMoose              any missing
+    ;; #     Params::Coerce                any missing
+    ;; #     Regexp::Common                any missing
+    ;; #     SUPER                         any missing
+    ;; #     Test::Deep                    any missing
+    ;; #     Test::DependentModules        any missing
+    ;; #     Test::LeakTrace               any missing
+    ;; #     Test::Output                  any missing
+    ;; #     URI                           any missing
+    (propagated-inputs
+     `(("perl-class-load" ,perl-class-load)
+       ("perl-class-load-xs" ,perl-class-load-xs)
+       ("perl-data-optlist" ,perl-data-optlist)
+       ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
+       ("perl-devel-overloadinfo" ,perl-devel-overloadinfo)
+       ("perl-devel-partialdump" ,perl-devel-partialdump)
+       ("perl-devel-stacktrace" ,perl-devel-stacktrace)
+       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
+       ("perl-eval-closure" ,perl-eval-closure)
+       ("perl-list-moreutils" ,perl-list-moreutils)
+       ("perl-module-runtime" ,perl-module-runtime)
+       ("perl-module-runtime-conflicts" ,perl-module-runtime-conflicts)
+       ("perl-mro-compat" ,perl-mro-compat)
+       ("perl-package-deprecationmanager" ,perl-package-deprecationmanager)
+       ("perl-package-stash" ,perl-package-stash)
+       ("perl-package-stash-xs" ,perl-package-stash-xs)
+       ("perl-params-util" ,perl-params-util)
+       ("perl-parent" ,perl-parent)
+       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
+       ("perl-sub-exporter" ,perl-sub-exporter)
+       ("perl-sub-name" ,perl-sub-name)
+       ("perl-task-weaken" ,perl-task-weaken)
+       ("perl-try-tiny" ,perl-try-tiny)))
+    (home-page "http://search.cpan.org/dist/Moose")
+    (synopsis "Postmodern object system for Perl 5")
+    (description
+     "Moose is a complete object system for Perl 5.  It provides keywords for
+attribute declaration, object construction, inheritance, and maybe more.  With
+Moose, you define your class declaratively, without needing to know about
+blessed hashrefs, accessor methods, and so on.  You can concentrate on the
+logical structure of your classes, focusing on \"what\" rather than \"how\".
+A class definition with Moose reads like a list of very concise English
+sentences.")
+    (license (package-license perl))))
+
 (define-public perl-mro-compat
   (package
     (name "perl-mro-compat")
@@ -786,6 +1271,34 @@ independent of the main namespace and only available through an object
 instance, not by name.")
     (license (package-license perl))))
 
+(define-public perl-package-deprecationmanager
+  (package
+    (name "perl-package-deprecationmanager")
+    (version "0.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
+                           "Package-DeprecationManager-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fkvq3xxwc3l5hg64dr9sj3l12dl59i44cg407qx9sd6r51j3qfi"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-fatal" ,perl-test-fatal)
+       ("perl-test-requires" ,perl-test-requires)
+       ("perl-test-output" ,perl-test-output)))
+    (propagated-inputs
+     `(("perl-list-moreutils" ,perl-list-moreutils)
+       ("perl-params-util" ,perl-params-util)
+       ("perl-sub-install" ,perl-sub-install)))
+    (arguments `(#:tests? #f))          ;XXX: Failing for some reason...
+    (home-page "http://search.cpan.org/dist/Package-DeprecationManager")
+    (synopsis "Manage deprecation warnings for your distribution")
+    (description "This module allows you to manage a set of deprecations for
+one or more modules.")
+    (license artistic2.0)))
+
 (define-public perl-package-stash
   (package
     (name "perl-package-stash")
@@ -840,6 +1353,27 @@ default if it's installed, and should be preferred in all environments with a
 compiler.")
     (license (package-license perl))))
 
+(define-public perl-padwalker
+  (package
+    (name "perl-padwalker")
+    (version "2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RO/ROBIN/"
+                           "PadWalker-" version ".tar.gz"))
+       (sha256
+        (base32
+         "058l78rkr6px3rqcv2sdf9sqimdq1nc6py5yb9rrg3wmva7crw84"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/PadWalker")
+    (synopsis "Play with other peoples' lexical variables")
+    (description "PadWalker is a module which allows you to inspect (and even
+change) lexical variables in any subroutine which called you.  It will only
+show those variables which are in scope at the point of the call.  PadWalker
+is particularly useful for debugging.")
+    (license (package-license perl))))
+
 (define-public perl-params-util
   (package
     (name "perl-params-util")
@@ -861,6 +1395,25 @@ compiler.")
 checking parameters easier.")
     (license (package-license perl))))
 
+(define-public perl-parent
+  (package
+    (name "perl-parent")
+    (version "0.228")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/"
+                           "parent-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0w0i02y4z8465z050kml57mvhv7c5gl8w8ivplhr3cms0zbaq87b"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/parent")
+    (synopsis "Establish an ISA relationship with base classes at compile time")
+    (description "Allows you to both load one or more modules, while setting
+up inheritance from those modules at the same time.")
+    (license (package-license perl))))
+
 (define-public perl-probe-perl
   (package
     (name "perl-probe-perl")
@@ -996,6 +1549,48 @@ the unsightly mess of C<no strict> or typeglobs lying about where just anyone
 can see them.")
     (license (package-license perl))))
 
+(define-public perl-sub-name
+  (package
+    (name "perl-sub-name")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+                           "Sub-Name-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sdlc8pv7vyyc48gzh70hbwzn0hzwl3zbcy2dkmfw8vjzgya5i06"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-devel-checkbin" ,perl-devel-checkbin)))
+    (home-page "http://search.cpan.org/dist/Sub-Name")
+    (synopsis "(Re)name a sub")
+    (description "Assigns a new name to referenced sub.  If package
+specification is omitted in the name, then the current package is used.  The
+return value is the sub.")
+    (license (package-license perl))))
+
+(define-public perl-sub-uplevel
+  (package
+    (name "perl-sub-uplevel")
+    (version "0.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+                           "Sub-Uplevel-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1yzxqsim8vpavzqm2wfksh8dpmy6qbr9s3hdqqicp38br3lzd4qg"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Sub-Uplevel")
+    (synopsis "Apparently run a function in a higher stack frame")
+    (description "Like Tcl's uplevel() function, but not quite so dangerous.
+The idea is just to fool caller().  All the really naughty bits of Tcl's
+uplevel() are avoided.")
+    (license (package-license perl))))
+
 (define-public perl-sys-cpu
   (package
     (name "perl-sys-cpu")
@@ -1017,6 +1612,29 @@ clock speed.")
                               "Sys-CPU-" version))
     (license (package-license perl))))
 
+(define-public perl-task-weaken
+  (package
+    (name "perl-task-weaken")
+    (version "1.04")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
+                           "Task-Weaken-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i7kd9v8fjsqyhr4rx4a1jv7n5vfjjm1v4agb24pizh0b72p3qk7"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Task-Weaken")
+    (synopsis "Ensure that a platform has weaken support")
+    (description "One recurring problem in modules that use Scalar::Util's
+weaken function is that it is not present in the pure-perl variant.  If
+Scalar::Util is not available at all, it will issue a normal dependency on the
+module.  However, if Scalar::Util is relatively new ( it is >= 1.19 ) and the
+module does not have weaken, the install will bail out altogether with a long
+error encouraging the user to seek support.")
+    (license (package-license perl))))
+
 (define-public perl-test-cleannamespaces
   (package
     (name "perl-test-cleannamespaces")
@@ -1074,6 +1692,78 @@ structures without getting caught in an infinite loop.")
                               "Test-Deep-" version))
     (license gpl1+)))  ; or "Artistic License"
 
+(define-public perl-test-differences
+  (package
+    (name "perl-test-differences")
+    (version "0.63")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DC/DCANTRELL/"
+                           "Test-Differences-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rhs4q6qn64ji06ns7lwl6iiiw3mggvd9xk9nkiqvx1jihbplrbw"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-text-diff" ,perl-text-diff)
+       ("perl-capture-tiny" ,perl-capture-tiny)))
+    (home-page "http://search.cpan.org/dist/Test-Differences")
+    (synopsis "Test strings and data structures and show differences")
+    (description "This module exports three test functions and four diff-style
+functions")
+    ;; See LICENSE section of Test/Differences.pm, which reads "... GNU public
+    ;; license, any version, ..."
+    (license gpl3+)))
+
+(define-public perl-test-directory
+  (package
+    (name "perl-test-directory")
+    (version "0.041")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/S/SA/SANBEG/"
+                           "Test-Directory-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ncql08cizhicbxwd753b4czns8nlcnlw0zfjcfrbdd41x4j6hqr"))))
+    (build-system perl-build-system)
+    (native-inputs `(("perl-test-exception" ,perl-test-exception)))
+    (home-page "http://search.cpan.org/dist/Test-Directory")
+    (synopsis "Perl extension for maintaining test directories")
+    (description "Testing code can involve making sure that files are created
+and deleted as expected.  Doing this manually can be error prone, as it's easy
+to forget a file, or miss that some unexpected file was added.  This module
+simplifies maintaining test directories by tracking their status as they are
+modified or tested with this API, making it simple to test both individual
+files, as well as to verify that there are no missing or unknown files.")
+    (license (package-license perl))))
+
+(define-public perl-test-exception
+  (package
+    (name "perl-test-exception")
+    (version "0.36")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
+                           "Test-Exception-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1zpwimspbq11wjrli481qk17aabzxab15cnnryflx45nzn3za2xk"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)))
+    (propagated-inputs
+     `(("perl-sub-uplevel" ,perl-sub-uplevel)))
+    (home-page "http://search.cpan.org/dist/Test-Exception")
+    (synopsis "Test exception based code")
+    (description "This module provides a few convenience methods for testing
+exception based code.  It is built with Test::Builder and plays happily with
+Test::More and friends.")
+    (license (package-license perl))))
+
 (define-public perl-test-fatal
   (package
     (name "perl-test-fatal")
@@ -1125,6 +1815,32 @@ testing exception-throwing code with about the same amount of typing.")
 automatically aggregated and output to STDOUT.")
     (license (package-license perl))))
 
+(define-public perl-test-most
+  (package
+    (name "perl-test-most")
+    (version "0.34")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/"
+                           "Test-Most-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0i72aih3pakm8gh73wx1n4dwq8lbx6dvxhla46gsapszws6hr0n2"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-test-differences" ,perl-test-differences)
+       ("perl-test-warn" ,perl-test-warn)
+       ("perl-exception-class" ,perl-exception-class)
+       ("perl-test-deep" ,perl-test-deep)
+       ("perl-test-exception" ,perl-test-exception)))
+    (home-page "http://search.cpan.org/dist/Test-Most")
+    (synopsis "Most commonly needed test functions and features")
+    (description "This module provides the most commonly used testing
+functions, along with automatically turning on strict and warning and gives a
+bit more fine-grained control over test suites.")
+    (license (package-license perl))))
+
 (define-public perl-test-nowarnings
   (package
     (name "perl-test-nowarnings")
@@ -1257,6 +1973,27 @@ a minimum of effort.")
     ;; "Under the same license as Perl itself"
     (license (package-license perl))))
 
+(define-public perl-test-warn
+  (package
+    (name "perl-test-warn")
+    (version "0.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
+                           "Test-Warn-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0haf2ii7br5z0psmkvlvmx2z2q9qz1c70gx0969r378qjidmb5w1"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-sub-uplevel" ,perl-sub-uplevel)))
+    (home-page "http://search.cpan.org/dist/Test-Warn")
+    (synopsis "Perl extension to test methods for warnings")
+    (description "This module provides a few convenience methods for testing
+warning based code.")
+    (license (package-license perl))))
+
 (define-public perl-test-warnings
   (package
     (name "perl-test-warnings")
@@ -1279,6 +2016,55 @@ hooking into done_testing as well as via an END block.  You can declare a
 plan, or not, and things will still Just Work.")
     (license (package-license perl))))
 
+(define-public perl-test-writevariants
+  (package
+    (name "perl-test-writevariants")
+    (version "0.010")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+                           "Test-WriteVariants-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kklp05fj98yiq8znyfx9lx1vmjay2ypfb868qdwv3kf93m5zjwr"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-most" ,perl-test-most)
+       ("perl-test-directory" ,perl-test-directory)))
+    (propagated-inputs
+     `(("perl-data-tumbler" ,perl-data-tumbler)
+       ("perl-file-homedir" ,perl-file-homedir)))
+    (home-page "http://search.cpan.org/dist/Test-WriteVariants")
+    (synopsis "Dynamic generation of tests")
+    (description "The Test::WriteVariants module provides for the dynamic
+generation of tests in nested combinations of contexts.")
+    (license (package-license perl))))  ;See LICENSE
+
+(define-public perl-text-diff
+  (package
+    (name "perl-text-diff")
+    (version "1.41")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/"
+                           "Text-Diff-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ynjsa4sr1yvyh65sdfvahaafglibz70j8b6rj01cg1iisj50zx6"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-algorithm-diff" ,perl-algorithm-diff)))
+    (home-page "http://search.cpan.org/dist/Text-Diff")
+    (synopsis "Perform diffs on files and record sets")
+    (description "Text::Diff provides a basic set of services akin to the GNU
+diff utility.  It is not anywhere near as feature complete as GNU diff, but it
+is better integrated with Perl and available on all platforms.  It is often
+faster than shelling out to a system's diff executable for small files, and
+generally slower on larger files.")
+    (license (package-license perl))))
+
 (define-public perl-text-glob
   (package
     (name "perl-text-glob")
@@ -1417,6 +2203,31 @@ for use in reading and writing CPAN metadata files like META.yml and
 MYMETA.yml.")
     (license (package-license perl))))
 
+(define-public perl-module-build
+  (package
+    (name "perl-module-build")
+    (version "0.4211")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/L/LE/LEONT/"
+                           "Module-Build-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1c5hfhajr963w4mdjivsc7yz4vf4pz1rrfch5a93fbac1x2mr58h"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-cpan-meta" ,perl-cpan-meta)))
+    (home-page "http://search.cpan.org/dist/Module-Build")
+    (synopsis "Build and install Perl modules")
+    (description "\"Module::Build\" is a system for building, testing, and
+installing Perl modules.  It is meant to be an alternative to
+\"ExtUtils::MakeMaker\".  Developers may alter the behavior of the module
+through subclassing in a much more straightforward way than with
+\"MakeMaker\".  It also does not require a \"make\" on your system - most of
+the \"Module::Build\" code is pure-perl and written in a cross-platform way.")
+    (license (package-license perl))))
+
 (define-public perl-parse-cpan-meta
   (package
     (name "perl-parse-cpan-meta")
@@ -1438,4 +2249,25 @@ MYMETA.yml.")
 files, using JSON::PP and/or CPAN::Meta::YAML.")
     (license (package-license perl))))
 
+(define-public perl-scalar-list-utils
+  (package
+    (name "perl-scalar-list-utils")
+    (version "1.41")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
+                           "Scalar-List-Utils-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04l1q4hps9n8b1hk9kpgpc1cryim7pl9sfdyb7fz5nq4gmz307j7"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Scalar-List-Utils")
+    (synopsis "Common Scalar and List utility subroutines")
+    (description "This package contains a selection of subroutines that people
+have expressed would be nice to have in the perl core, but the usage would not
+really be high enough to warrant the use of a keyword, and the size so small
+such that being individual extensions would be wasteful.")
+    (license (package-license perl))))
+
 ;;; END: Core module overrides