The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Build.PL 380
CONTRIBUTING.mkdn 087
Changes 1837
INSTALL 180
LICENSE 100158
MANIFEST 1521
MANIFEST.SKIP 370
META.json 0106
META.yml 1736
Makefile.PL 2178
README 6489
Todo 110
cpanfile 044
dist.ini 014
inc/Module/Build/DAGOLDEN.pm 640
lib/IO/CaptureOutput.pm 100176
lib/IO/CaptureOutput.pod 2170
perlcritic.rc 026
t/00-report-prereqs.dd 054
t/00-report-prereqs.t 0176
t/capture.t 1116
t/wperl.t 13
xt/author/00-compile.t 054
xt/author/critic.t 012
xt/author/pod-spell.t 031
xt/critic.t 90
xt/perlcriticrc 190
xt/pod-coverage.t 130
xt/pod.t 70
xt/release/distmeta.t 06
xt/release/minimum-version.t 08
xt/release/pod-coverage.t 07
xt/release/pod-syntax.t 06
xt/release/portability.t 012
xt/release/test-version.t 022
xt/spelling.t 200
36 files changed (This is a version diff) 8001279
@@ -1,38 +0,0 @@
-use strict;
-use lib 'inc';
-use Module::Build::DAGOLDEN;
-
-my $build = Module::Build::DAGOLDEN->new( 
-    module_name         => 'IO::CaptureOutput',
-    dist_author         => 'David A. Golden <dagolden@cpan.org>',
-    license             => 'perl',
-    create_readme       => 1,
-    create_makefile_pl  => 'traditional',
-    requires => {
-        'Carp' => 0, 
-        'Exporter' => 0, 
-        'File::Basename' => 0, 
-        'File::Temp' => 0.16,  # many bug fixes
-        'Symbol' => 0, 
-    },
-    build_requires => {
-        'File::Spec' => 3.27, # many bug fixes
-        'Test::More' => 0.62,  # newer API
-        'IO::File' => 0, 
-    },
-    add_to_cleanup => [ '_Inline' ],
-    meta_merge            => { 
-        no_index => { 
-            directory => [ qw{
-                examples
-                inc
-            }],
-        },
-        resources => {
-            repository => 'http://dagolden.googlecode.com/svn/'
-        },
-    },
-);
-
-$build->create_build_script;
-
@@ -0,0 +1,87 @@
+## HOW TO CONTRIBUTE
+
+Thank you for considering contributing to this distribution.  This file
+contains instructions that will help you work with the source code.
+
+The distribution is managed with Dist::Zilla.  This means than many of the
+usual files you might expect are not in the repository, but are generated at
+release time, as is much of the documentation.  Some generated files are
+kept in the repository as a convenience (e.g. Makefile.PL or cpanfile).
+
+Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
+Dist::Zilla to create a tarball.  See below for guidance.
+
+### Getting dependencies
+
+If you have App::cpanminus 1.6 or later installed, you can use `cpanm` to
+satisfy dependencies like this:
+
+    $ cpanm --installdeps .
+
+Otherwise, look for either a `Makefile.PL` or `cpanfile` file for
+a list of dependencies to satisfy.
+
+### Running tests
+
+You can run tests directly using the `prove` tool:
+
+    $ prove -l
+    $ prove -lv t/some_test_file.t
+
+For most of my distributions, `prove` is entirely sufficient for you to test any
+patches you have. I use `prove` for 99% of my testing during development.
+
+### Code style and tidying
+
+Please try to match any existing coding style.  If there is a `.perltidyrc`
+file, please install Perl::Tidy and use perltidy before submitting patches.
+
+If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
+`tidyall` on a file or `tidyall -a` to tidy all files.
+
+### Patching documentation
+
+Much of the documentation Pod is generated at release time.  Some is
+generated boilerplate; other documentation is built from pseudo-POD
+directives in the source like C<=method> or C<=func>.
+
+If you would like to submit a documentation edit, please limit yourself to
+the documentation you see.
+
+If you see typos or documentation issues in the generated docs, please
+email or open a bug ticket instead of patching.
+
+### Installing and using Dist::Zilla
+
+Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
+large number of distributions with a high degree of automation, but it has a
+large dependency chain, a bit of a learning curve and requires a number of
+author-specific plugins.
+
+To install it from CPAN, I recommend one of the following approaches for
+the quickest installation:
+
+    # using CPAN.pm, but bypassing non-functional pod tests
+    $ cpan TAP::Harness::Restricted
+    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
+
+    # using cpanm, bypassing *all* tests
+    $ cpanm -n Dist::Zilla
+
+In either case, it's probably going to take about 10 minutes.  Go for a walk,
+go get a cup of your favorite beverage, take a bathroom break, or whatever.
+When you get back, Dist::Zilla should be ready for you.
+
+Then you need to install any plugins specific to this distribution:
+
+    $ cpan `dzil authordeps`
+    $ dzil authordeps | cpanm
+
+Once installed, here are some dzil commands you might try:
+
+    $ dzil build
+    $ dzil test
+    $ dzil xtest
+
+You can learn more about Dist::Zilla at http://dzil.org/
+
@@ -1,9 +1,28 @@
 Revision history for IO::CaptureOutput
 
+1.1104    2015-01-23 22:03:57-05:00 America/New_York
+
+    [PREREQS]
+
+    - Drop File::Spec 3.27 prereq except on MSWin32
+
+1.1103    2014-02-27 19:54:14-05:00 America/New_York
+
+    [FIXED]
+
+    - Fixed rt.cpan.org #71775: test failure on non-threaded Win32 perls
+
+    [CHANGED]
+
+    - Updated metadata, repo and bugtracker
+
+    - Switched distribution management to Dist::Zilla
+
 1.1102 Mon Feb 15 07:36:53 EST 2010
 
-    - Fixed test that confused archname and osname (reported by Tux)
-    
+    - Fixed: RT#45160 test that confused archname and osname
+      (reported by Dolmen and Tux)
+
 1.1101 Tue Mar  3 23:30:45 EST 2009
 
     - Fixed Makefile.PL; no functional changes
@@ -33,23 +52,23 @@ Revision history for IO::CaptureOutput
 
     - Changed: doesn't bother to read captured output back from file if no
       scalar reference is provided to receive it
-      
+
     - Fixed: 'capture { .. } undef, undef, $capture_file' now correctly
       merges STDOUT and STDERR
 
 1.0801 Sat Feb  9 09:41:11 EST 2008
-    
-    - testfix: skip some error handling tests if temp files can't be made 
+
+    - testfix: skip some error handling tests if temp files can't be made
       read-only (e.g. running test as root)
 
     - added some prerequisites and meta information to Build.PL
 
     - added an 'examples' directory
-    
+
 1.08 Wed Feb  6 22:43:37 EST 2008
 
     - added additional tests and revised documentation
-    
+
 1.07_01 Wed Jan 30 20:57:15 EST 2008
 
     - added support for capturing to named files instead of anonymous
@@ -76,11 +95,11 @@ Revision history for IO::CaptureOutput
     - changed Inline::C code for printing to stdout to match that for stderr;
       works around a bug if the intalled MSVC++ version doesn't match the
       version used to build ActiveState Perl on MSWin32.
-      
+
 1.05_51 Sat Nov 17 13:36:39 EST 2007
 
     - changed Inline::C code for printing to stderr to attempt to work around
-      a segfault bug on some MSWin32 systems (Alternative described by 
+      a segfault bug on some MSWin32 systems (Alternative described by
       BrowserUK at http://www.perlmonks.org/?node_id=649021 )
 
     - minor Perl::Critic cleanup to pass xt tests
@@ -94,22 +113,22 @@ Revision history for IO::CaptureOutput
 
     - added capture_exec_combined() and alias qxy() to merge STDERR and STDOUT
       for subprocess execution (RT#29289)
-    
+
     - bugfix: stop crashing if output filehandles are previously closed or
       if running without a console on MSWin32 (i.e. wperl.exe) (RT#23676)
 
-    - bugfix: capture.t would fail on Win32 if Inline::C was installed; 
+    - bugfix: capture.t would fail on Win32 if Inline::C was installed;
       fixed the sample C code used in testing to flush stderr (RT#21712)
 
-    - bugfix: was failing on perl 5.8.0 due to extraneous space in call 
+    - bugfix: was failing on perl 5.8.0 due to extraneous space in call
       to open(); removing the space fixed the bug (RT#22044)
 
 1.04_03 Sun Nov  4 11:35:57 EST 2007
 
     - suppress warnings included in captured output when console output
-      handles were previously closed; only affects some versions/builds of 
+      handles were previously closed; only affects some versions/builds of
       perl on some platforms (found by Slaven Rezic 5.6.2 on FreeBSD 6.2)
-      
+
 1.04_02 Wed Oct 31 00:52:49 EDT 2007
 
     - added support for capture() merging STDERR and STDOUT to the same
@@ -117,7 +136,7 @@ Revision history for IO::CaptureOutput
 
     - added capture_exec_combined() and alias qxy() to merge STDERR and STDOUT
       for subprocess execution (RT#29289)
-    
+
     - bugfix: stop crashing if output filehandles are previously closed or
       if running without a console on MSWin32 (i.e. wperl.exe) (RT#23676)
 
@@ -125,13 +144,13 @@ Revision history for IO::CaptureOutput
 
 1.04_01 Mon Oct 29 22:56:45 EDT 2007
 
-    - DAGOLDEN added as maintainer; updated build system and packaging for 
+    - DAGOLDEN added as maintainer; updated build system and packaging for
       ongoing maintenance
 
-    - bugfix: capture.t would fail on Win32 if Inline::C was installed; 
+    - bugfix: capture.t would fail on Win32 if Inline::C was installed;
       fixed the sample C code used in testing to flush stderr (RT#21712)
 
-    - bugfix: was failing on perl 5.8.0 due to extraneous space in call 
+    - bugfix: was failing on perl 5.8.0 due to extraneous space in call
       to open(); removing the space fixed the bug (RT#22044)
 
 1.03  2005-03-25
@@ -1,18 +0,0 @@
-INSTALLATION 
-
-If Module::Build is installed (preferred):
-
-    perl Build.PL
-    perl Build
-    perl Build test
-    perl Build install
-
-Otherwise, using a Makefile:
-
-    perl Makefile.PL
-    make
-    make test
-    make install
-
-If you are on a Windows machine you should use 'nmake' or 'dmake' rather than
-'make'.
@@ -1,30 +1,33 @@
-License terms of Perl itself
+This software is copyright (c) 2015 by Simon Flack and David Golden.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of either:
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
 
-	a) the GNU General Public License as published by the Free
-	Software Foundation; either version 1, or (at your option) any
-	later version, or
+Terms of the Perl programming language system itself
 
-	b) the "Artistic License" which comes with this Kit.
+a) the GNU General Public License as published by the Free
+   Software Foundation; either version 1, or (at your option) any
+   later version, or
+b) the "Artistic License"
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See either
-the GNU General Public License or the Artistic License for more details.
+--- The GNU General Public License, Version 1, February 1989 ---
 
----------------------------------------------------------------------------
+This software is Copyright (c) 2015 by Simon Flack and David Golden.
 
-		    GNU GENERAL PUBLIC LICENSE
-		     Version 1, February 1989
+This is free software, licensed under:
+
+  The GNU General Public License, Version 1, February 1989
+
+                    GNU GENERAL PUBLIC LICENSE
+                     Version 1, February 1989
 
  Copyright (C) 1989 Free Software Foundation, Inc.
-                59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+ 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                            Preamble
 
   The license agreements of most software companies try to keep users
 at the mercy of those companies.  By contrast, our General Public
@@ -65,7 +68,7 @@ authors' reputations.
   The precise terms and conditions for copying, distribution and
 modification follow.
 
-		    GNU GENERAL PUBLIC LICENSE
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License Agreement applies to any program or other work which
@@ -161,7 +164,7 @@ Program), the recipient automatically receives a license from the original
 licensor to copy, distribute or modify the Program subject to these
 terms and conditions.  You may not impose any further restrictions on the
 recipients' exercise of the rights granted herein.
-
+
   7. The Free Software Foundation may publish revised and/or new versions
 of the General Public License from time to time.  Such new versions will
 be similar in spirit to the present version, but may differ in detail to
@@ -183,7 +186,7 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-			    NO WARRANTY
+                            NO WARRANTY
 
   9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -205,9 +208,75 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
+                     END OF TERMS AND CONDITIONS
+
+        Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+  To do so, attach the following notices to the program.  It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 1, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19xx name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here a sample; alter the names:
 
----------------------------------------------------------------------------
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  program `Gnomovision' (a program to direct compilers to make passes
+  at assemblers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+--- The Artistic License 1.0 ---
+
+This software is Copyright (c) 2015 by Simon Flack and David Golden.
+
+This is free software, licensed under:
+
+  The Artistic License 1.0
 
 The Artistic License
 
@@ -215,107 +284,96 @@ Preamble
 
 The intent of this document is to state the conditions under which a Package
 may be copied, such that the Copyright Holder maintains some semblance of
-artistic control over the development of the package, while giving the users of the
-package the right to use and distribute the Package in a more-or-less customary
-fashion, plus the right to make reasonable modifications.
+artistic control over the development of the package, while giving the users of
+the package the right to use and distribute the Package in a more-or-less
+customary fashion, plus the right to make reasonable modifications.
 
 Definitions:
 
--    "Package" refers to the collection of files distributed by the Copyright
-     Holder, and derivatives of that collection of files created through textual
-     modification. 
--    "Standard Version" refers to such a Package if it has not been modified,
-     or has been modified in accordance with the wishes of the Copyright
-     Holder. 
--    "Copyright Holder" is whoever is named in the copyright or copyrights for
-     the package. 
--    "You" is you, if you're thinking about copying or distributing this Package.
--    "Reasonable copying fee" is whatever you can justify on the basis of
-     media cost, duplication charges, time of people involved, and so on. (You
-     will not be required to justify it to the Copyright Holder, but only to the
-     computing community at large as a market that must bear the fee.) 
--    "Freely Available" means that no fee is charged for the item itself, though
-     there may be fees involved in handling the item. It also means that
-     recipients of the item may redistribute it under the same conditions they
-     received it. 
+  - "Package" refers to the collection of files distributed by the Copyright
+    Holder, and derivatives of that collection of files created through
+    textual modification. 
+  - "Standard Version" refers to such a Package if it has not been modified,
+    or has been modified in accordance with the wishes of the Copyright
+    Holder. 
+  - "Copyright Holder" is whoever is named in the copyright or copyrights for
+    the package. 
+  - "You" is you, if you're thinking about copying or distributing this Package.
+  - "Reasonable copying fee" is whatever you can justify on the basis of media
+    cost, duplication charges, time of people involved, and so on. (You will
+    not be required to justify it to the Copyright Holder, but only to the
+    computing community at large as a market that must bear the fee.) 
+  - "Freely Available" means that no fee is charged for the item itself, though
+    there may be fees involved in handling the item. It also means that
+    recipients of the item may redistribute it under the same conditions they
+    received it. 
 
 1. You may make and give away verbatim copies of the source form of the
-Standard Version of this Package without restriction, provided that you duplicate
-all of the original copyright notices and associated disclaimers.
-
-2. You may apply bug fixes, portability fixes and other modifications derived from
-the Public Domain or from the Copyright Holder. A Package modified in such a
-way shall still be considered the Standard Version.
-
-3. You may otherwise modify your copy of this Package in any way, provided
-that you insert a prominent notice in each changed file stating how and when
-you changed that file, and provided that you do at least ONE of the following:
-
-     a) place your modifications in the Public Domain or otherwise
-     make them Freely Available, such as by posting said modifications
-     to Usenet or an equivalent medium, or placing the modifications on
-     a major archive site such as ftp.uu.net, or by allowing the
-     Copyright Holder to include your modifications in the Standard
-     Version of the Package.
-
-     b) use the modified Package only within your corporation or
-     organization.
-
-     c) rename any non-standard executables so the names do not
-     conflict with standard executables, which must also be provided,
-     and provide a separate manual page for each non-standard
-     executable that clearly documents how it differs from the Standard
-     Version.
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
 
-     d) make other distribution arrangements with the Copyright Holder.
+2. You may apply bug fixes, portability fixes and other modifications derived
+from the Public Domain or from the Copyright Holder. A Package modified in such
+a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided that
+you insert a prominent notice in each changed file stating how and when you
+changed that file, and provided that you do at least ONE of the following:
+
+  a) place your modifications in the Public Domain or otherwise make them
+     Freely Available, such as by posting said modifications to Usenet or an
+     equivalent medium, or placing the modifications on a major archive site
+     such as ftp.uu.net, or by allowing the Copyright Holder to include your
+     modifications in the Standard Version of the Package.
+
+  b) use the modified Package only within your corporation or organization.
+
+  c) rename any non-standard executables so the names do not conflict with
+     standard executables, which must also be provided, and provide a separate
+     manual page for each non-standard executable that clearly documents how it
+     differs from the Standard Version.
+
+  d) make other distribution arrangements with the Copyright Holder.
 
 4. You may distribute the programs of this Package in object code or executable
 form, provided that you do at least ONE of the following:
 
-     a) distribute a Standard Version of the executables and library
-     files, together with instructions (in the manual page or equivalent)
-     on where to get the Standard Version.
+  a) distribute a Standard Version of the executables and library files,
+     together with instructions (in the manual page or equivalent) on where to
+     get the Standard Version.
 
-     b) accompany the distribution with the machine-readable source of
-     the Package with your modifications.
+  b) accompany the distribution with the machine-readable source of the Package
+     with your modifications.
 
-     c) accompany any non-standard executables with their
-     corresponding Standard Version executables, giving the
-     non-standard executables non-standard names, and clearly
-     documenting the differences in manual pages (or equivalent),
-     together with instructions on where to get the Standard Version.
+  c) accompany any non-standard executables with their corresponding Standard
+     Version executables, giving the non-standard executables non-standard
+     names, and clearly documenting the differences in manual pages (or
+     equivalent), together with instructions on where to get the Standard
+     Version.
 
-     d) make other distribution arrangements with the Copyright Holder.
+  d) make other distribution arrangements with the Copyright Holder.
 
-5. You may charge a reasonable copying fee for any distribution of this Package.
-You may charge any fee you choose for support of this Package. You may not
-charge a fee for this Package itself. However, you may distribute this Package in
-aggregate with other (possibly commercial) programs as part of a larger
-(possibly commercial) software distribution provided that you do not advertise
-this Package as a product of your own.
+5. You may charge a reasonable copying fee for any distribution of this
+Package.  You may charge any fee you choose for support of this Package. You
+may not charge a fee for this Package itself. However, you may distribute this
+Package in aggregate with other (possibly commercial) programs as part of a
+larger (possibly commercial) software distribution provided that you do not
+advertise this Package as a product of your own.
 
-6. The scripts and library files supplied as input to or produced as output from
-the programs of this Package do not automatically fall under the copyright of this
-Package, but belong to whomever generated them, and may be sold
+6. The scripts and library files supplied as input to or produced as output
+from the programs of this Package do not automatically fall under the copyright
+of this Package, but belong to whomever generated them, and may be sold
 commercially, and may be aggregated with this Package.
 
 7. C or perl subroutines supplied by you and linked into this Package shall not
 be considered part of this Package.
 
-8. Aggregation of this Package with a commercial distribution is always permitted
-provided that the use of this Package is embedded; that is, when no overt attempt
-is made to make this Package's interfaces visible to the end user of the
-commercial distribution. Such use shall not be construed as a distribution of
-this Package.
-
-9. The name of the Copyright Holder may not be used to endorse or promote
+8. The name of the Copyright Holder may not be used to endorse or promote
 products derived from this software without specific prior written permission.
 
-10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.
+9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
 The End
 
-
@@ -1,16 +1,19 @@
-Build.PL
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.031.
+CONTRIBUTING.mkdn
 Changes
-examples/capture.pl
-inc/Module/Build/DAGOLDEN.pm
-INSTALL
-lib/IO/CaptureOutput.pm
-lib/IO/CaptureOutput.pod
 LICENSE
-Makefile.PL
 MANIFEST
-MANIFEST.SKIP
-META.yml			Module meta-data (added by MakeMaker)
+META.json
+META.yml
+Makefile.PL
 README
+cpanfile
+dist.ini
+examples/capture.pl
+lib/IO/CaptureOutput.pm
+perlcritic.rc
+t/00-report-prereqs.dd
+t/00-report-prereqs.t
 t/capture.t
 t/capture_exec.t
 t/capture_file.t
@@ -19,9 +22,12 @@ t/noconsole.t
 t/scripts/wperl-capture.pl
 t/scripts/wperl-exec.pl
 t/wperl.t
-Todo
-xt/critic.t
-xt/perlcriticrc
-xt/pod-coverage.t
-xt/pod.t
-xt/spelling.t
+xt/author/00-compile.t
+xt/author/critic.t
+xt/author/pod-spell.t
+xt/release/distmeta.t
+xt/release/minimum-version.t
+xt/release/pod-coverage.t
+xt/release/pod-syntax.t
+xt/release/portability.t
+xt/release/test-version.t
@@ -1,37 +0,0 @@
-# Version control files and dirs.
-\bRCS\b
-\bCVS\b
-,v$
-.svn/
-.git/
-.gitignore
-
-# ExtUtils::MakeMaker generated files and dirs.
-^MANIFEST\.(?!SKIP)
-^Makefile$
-^blib/
-^blibdirs$
-^PM_to_blib$
-^pm_to_blib$
-^MakeMaker-\d
-                                                                                                                    
-# Inline::C from testing
-^_Inline
-
-# Module::Build
-^Build$
-^_build
-.bat$
-
-# Coverage
-^cover_db
-
-# Temp, old, vi and emacs files.
-~$
-\.old$
-^#.*#$
-^\.#
-\.swp$
-\.bak$
-\.tmp$
-^MYMETA
@@ -0,0 +1,106 @@
+{
+   "abstract" : "capture STDOUT and STDERR from Perl code, subprocesses or XS",
+   "author" : [
+      "Simon Flack <simonflk@cpan.org>",
+      "David Golden <dagolden@cpan.org>"
+   ],
+   "dynamic_config" : 1,
+   "generated_by" : "Dist::Zilla version 5.031, CPAN::Meta::Converter version 2.143240",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+      "version" : 2
+   },
+   "name" : "IO-CaptureOutput",
+   "no_index" : {
+      "directory" : [
+         "t",
+         "xt",
+         "examples",
+         "corpus"
+      ],
+      "package" : [
+         "DB"
+      ]
+   },
+   "prereqs" : {
+      "configure" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "6.17",
+            "perl" : "5.006"
+         }
+      },
+      "develop" : {
+         "requires" : {
+            "Dist::Zilla" : "5",
+            "Dist::Zilla::Plugin::OSPrereqs" : "0",
+            "Dist::Zilla::Plugin::RemovePrereqs" : "0",
+            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072",
+            "File::Spec" : "0",
+            "File::Temp" : "0",
+            "IO::Handle" : "0",
+            "IPC::Open3" : "0",
+            "Pod::Coverage::TrustPod" : "0",
+            "Test::CPAN::Meta" : "0",
+            "Test::More" : "0",
+            "Test::Pod" : "1.41",
+            "Test::Pod::Coverage" : "1.08",
+            "Test::Spelling" : "0.12",
+            "Test::Version" : "1"
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "Carp" : "0",
+            "Exporter" : "0",
+            "File::Basename" : "0",
+            "File::Temp" : "0.16",
+            "Symbol" : "0",
+            "perl" : "5.006",
+            "strict" : "0",
+            "vars" : "0",
+            "warnings" : "0"
+         }
+      },
+      "test" : {
+         "recommends" : {
+            "CPAN::Meta" : "2.120900"
+         },
+         "requires" : {
+            "ExtUtils::MakeMaker" : "0",
+            "File::Spec" : "3.27",
+            "IO::File" : "0",
+            "Test::More" : "0.62",
+            "perl" : "5.006"
+         }
+      }
+   },
+   "provides" : {
+      "IO::CaptureOutput" : {
+         "file" : "lib/IO/CaptureOutput.pm",
+         "version" : "1.1104"
+      }
+   },
+   "release_status" : "stable",
+   "resources" : {
+      "bugtracker" : {
+         "web" : "https://github.com/dagolden/IO-CaptureOutput/issues"
+      },
+      "homepage" : "https://github.com/dagolden/IO-CaptureOutput",
+      "repository" : {
+         "type" : "git",
+         "url" : "https://github.com/dagolden/IO-CaptureOutput.git",
+         "web" : "https://github.com/dagolden/IO-CaptureOutput"
+      }
+   },
+   "version" : "1.1104",
+   "x_authority" : "cpan:DAGOLDEN",
+   "x_contributors" : [
+      "Mike Latimer <mlatimer@suse.com>",
+      "Olivier Mengué <dolmen@cpan.org>",
+      "Tony Cook <tony@develop-help.com>"
+   ]
+}
+
@@ -1,34 +1,53 @@
 ---
 abstract: 'capture STDOUT and STDERR from Perl code, subprocesses or XS'
 author:
-  - 'David A. Golden <dagolden@cpan.org>'
+  - 'Simon Flack <simonflk@cpan.org>'
+  - 'David Golden <dagolden@cpan.org>'
 build_requires:
-  File::Spec: 3.27
-  IO::File: 0
-  Test::More: 0.62
+  ExtUtils::MakeMaker: '0'
+  File::Spec: '3.27'
+  IO::File: '0'
+  Test::More: '0.62'
+  perl: '5.006'
 configure_requires:
-  Module::Build: 0.36
-generated_by: 'Module::Build version 0.3603'
+  ExtUtils::MakeMaker: '6.17'
+  perl: '5.006'
+dynamic_config: 1
+generated_by: 'Dist::Zilla version 5.031, CPAN::Meta::Converter version 2.143240'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: IO-CaptureOutput
 no_index:
   directory:
+    - t
+    - xt
     - examples
-    - inc
+    - corpus
+  package:
+    - DB
 provides:
   IO::CaptureOutput:
     file: lib/IO/CaptureOutput.pm
-    version: 1.1102
+    version: '1.1104'
 requires:
-  Carp: 0
-  Exporter: 0
-  File::Basename: 0
-  File::Temp: 0.16
-  Symbol: 0
+  Carp: '0'
+  Exporter: '0'
+  File::Basename: '0'
+  File::Temp: '0.16'
+  Symbol: '0'
+  perl: '5.006'
+  strict: '0'
+  vars: '0'
+  warnings: '0'
 resources:
-  license: http://dev.perl.org/licenses/
-  repository: http://dagolden.googlecode.com/svn/
-version: 1.1102
+  bugtracker: https://github.com/dagolden/IO-CaptureOutput/issues
+  homepage: https://github.com/dagolden/IO-CaptureOutput
+  repository: https://github.com/dagolden/IO-CaptureOutput.git
+version: '1.1104'
+x_authority: cpan:DAGOLDEN
+x_contributors:
+  - 'Mike Latimer <mlatimer@suse.com>'
+  - 'Olivier Mengué <dolmen@cpan.org>'
+  - 'Tony Cook <tony@develop-help.com>'
@@ -1,21 +1,78 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.3603
-use ExtUtils::MakeMaker;
-WriteMakefile
-(
-          'NAME' => 'IO::CaptureOutput',
-          'VERSION_FROM' => 'lib/IO/CaptureOutput.pm',
-          'PREREQ_PM' => {
-                           'Carp' => 0,
-                           'Exporter' => 0,
-                           'File::Basename' => 0,
-                           'File::Spec' => '3.27',
-                           'File::Temp' => '0.16',
-                           'IO::File' => 0,
-                           'Symbol' => 0,
-                           'Test::More' => '0.62'
-                         },
-          'INSTALLDIRS' => 'site',
-          'EXE_FILES' => [],
-          'PL_FILES' => {}
-        )
-;
+
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.031.
+use strict;
+use warnings;
+
+use 5.006;
+
+use ExtUtils::MakeMaker 6.17;
+
+
+
+my %WriteMakefileArgs = (
+  "ABSTRACT" => "capture STDOUT and STDERR from Perl code, subprocesses or XS",
+  "AUTHOR" => "Simon Flack <simonflk\@cpan.org>, David Golden <dagolden\@cpan.org>",
+  "CONFIGURE_REQUIRES" => {
+    "ExtUtils::MakeMaker" => "6.17"
+  },
+  "DISTNAME" => "IO-CaptureOutput",
+  "EXE_FILES" => [],
+  "LICENSE" => "perl",
+  "MIN_PERL_VERSION" => "5.006",
+  "NAME" => "IO::CaptureOutput",
+  "PREREQ_PM" => {
+    "Carp" => 0,
+    "Exporter" => 0,
+    "File::Basename" => 0,
+    "File::Temp" => "0.16",
+    "Symbol" => 0,
+    "strict" => 0,
+    "vars" => 0,
+    "warnings" => 0
+  },
+  "TEST_REQUIRES" => {
+    "ExtUtils::MakeMaker" => 0,
+    "File::Spec" => "3.27",
+    "IO::File" => 0,
+    "Test::More" => "0.62"
+  },
+  "VERSION" => "1.1104",
+  "test" => {
+    "TESTS" => "t/*.t"
+  }
+);
+
+
+my %FallbackPrereqs = (
+  "Carp" => 0,
+  "Exporter" => 0,
+  "ExtUtils::MakeMaker" => "6.17",
+  "File::Basename" => 0,
+  "File::Spec" => "3.27",
+  "File::Temp" => "0.16",
+  "IO::File" => 0,
+  "Symbol" => 0,
+  "Test::More" => "0.62",
+  "strict" => 0,
+  "vars" => 0,
+  "warnings" => 0
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+  delete $WriteMakefileArgs{TEST_REQUIRES};
+  delete $WriteMakefileArgs{BUILD_REQUIRES};
+  $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
+}
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+  unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+if ( $^O eq 'MSWin32' ) {
+	$WriteMakefileArgs{PREREQ_PM}{'File::Spec'} = '3.27';
+}
+
+WriteMakefile(%WriteMakefileArgs);
+
+
+
@@ -3,33 +3,37 @@ NAME
     subprocesses or XS
 
 VERSION
-    This documentation describes version 1.1102.
+    version 1.1104
 
 SYNOPSIS
-         use IO::CaptureOutput qw(capture qxx qxy);
- 
-         # STDOUT and STDERR separately
-         capture { noisy_sub(@args) } \$stdout, \$stderr;
- 
-         # STDOUT and STDERR together
-         capture { noisy_sub(@args) } \$combined, \$combined;
- 
-         # STDOUT and STDERR from external command
-         ($stdout, $stderr, $success) = qxx( @cmd );
- 
-         # STDOUT and STDERR together from external command
-         ($combined, $success) = qxy( @cmd );
+        use IO::CaptureOutput qw(capture qxx qxy);
+
+        # STDOUT and STDERR separately
+        capture { noisy_sub(@args) } \$stdout, \$stderr;
+
+        # STDOUT and STDERR together
+        capture { noisy_sub(@args) } \$combined, \$combined;
+
+        # STDOUT and STDERR from external command
+        ($stdout, $stderr, $success) = qxx( @cmd );
+
+        # STDOUT and STDERR together from external command
+        ($combined, $success) = qxy( @cmd );
 
 DESCRIPTION
+    This module is no longer recommended by the maintainer - see
+    Capture::Tiny instead.
+
     This module provides routines for capturing STDOUT and STDERR from perl
     subroutines, forked system calls (e.g. "system()", "fork()") and from XS
     or C modules.
 
+NAME
 FUNCTIONS
     The following functions will be exported on demand.
 
   capture()
-         capture \&subroutine, \$stdout, \$stderr;
+        capture \&subroutine, \$stdout, \$stderr;
 
     Captures everything printed to "STDOUT" and "STDERR" for the duration of
     &subroutine. $stdout and $stderr are optional scalars that will contain
@@ -38,15 +42,15 @@ FUNCTIONS
     "capture()" uses a code prototype so the first argument can be specified
     directly within brackets if desired.
 
-         # shorthand with prototype
-         capture { print __PACKAGE__ } \$stdout, \$stderr;
+        # shorthand with prototype
+        capture C< print __PACKAGE__ > \$stdout, \$stderr;
 
     Returns the return value(s) of &subroutine. The sub is called in the
     same context as "capture()" was called e.g.:
 
-         @rv = capture { wantarray } ; # returns true
-         $rv = capture { wantarray } ; # returns defined, but not true
-         capture { wantarray };       # void, returns undef
+        @rv = capture C< wantarray > ; # returns true
+        $rv = capture C< wantarray > ; # returns defined, but not true
+        capture C< wantarray >;       # void, returns undef
 
     "capture()" is able to capture output from subprocesses and C code,
     which traditional "tie()" methods of output capture are unable to do.
@@ -58,13 +62,13 @@ FUNCTIONS
     will be merged to "STDOUT" before capturing and the scalar will hold the
     combined output of both.
 
-         capture \&subroutine, \$combined, \$combined;
+        capture \&subroutine, \$combined, \$combined;
 
     Normally, "capture()" uses anonymous, temporary files for capturing
     output. If desired, specific file names may be provided instead as
     additional options.
 
-         capture \&subroutine, \$stdout, \$stderr, $out_file, $err_file;
+        capture \&subroutine, \$stdout, \$stderr, $out_file, $err_file;
 
     Files provided will be clobbered, overwriting any previous data, but
     will persist after the call to "capture()" for inspection or other
@@ -73,53 +77,53 @@ FUNCTIONS
     By default, when no references are provided to hold STDOUT or STDERR,
     output is captured and silently discarded.
 
-         # Capture STDOUT, discard STDERR
-         capture \&subroutine, \$stdout;
- 
-         # Discard STDOUT, capture STDERR
-         capture \&subroutine, undef, \$stderr;
+        # Capture STDOUT, discard STDERR
+        capture \&subroutine, \$stdout;
+
+        # Discard STDOUT, capture STDERR
+        capture \&subroutine, undef, \$stderr;
 
     However, even when using "undef", output can be captured to specific
     files.
 
-         # Capture STDOUT to a specific file, discard STDERR
-         capture \&subroutine, \$stdout, undef, $outfile;
- 
-         # Discard STDOUT, capture STDERR to a specific file
-         capture \&subroutine, undef, \$stderr, undef, $err_file;
- 
-         # Discard both, capture merged output to a specific file
-         capture \&subroutine, undef, undef, $mergedfile;
+        # Capture STDOUT to a specific file, discard STDERR
+        capture \&subroutine, \$stdout, undef, $outfile;
+
+        # Discard STDOUT, capture STDERR to a specific file
+        capture \&subroutine, undef, \$stderr, undef, $err_file;
+
+        # Discard both, capture merged output to a specific file
+        capture \&subroutine, undef, undef, $mergedfile;
 
     It is a fatal error to merge STDOUT and STDERR and request separate,
     specific files for capture.
 
-         # ERROR:
-         capture \&subroutine, \$stdout, \$stdout, $out_file, $err_file;
-         capture \&subroutine, undef, undef, $out_file, $err_file;
+        # ERROR:
+        capture \&subroutine, \$stdout, \$stdout, $out_file, $err_file;
+        capture \&subroutine, undef, undef, $out_file, $err_file;
 
     If either STDOUT or STDERR should be passed through to the terminal
     instead of captured, provide a reference to undef -- "\undef" -- instead
     of a capture variable.
 
-         # Capture STDOUT, display STDERR
-         capture \&subroutine, \$stdout, \undef;
- 
-         # Display STDOUT, capture STDERR
-         capture \&subroutine, \undef, \$stderr;
+        # Capture STDOUT, display STDERR
+        capture \&subroutine, \$stdout, \undef;
+
+        # Display STDOUT, capture STDERR
+        capture \&subroutine, \undef, \$stderr;
 
   capture_exec()
-         ($stdout, $stderr, $success, $exit_code) = capture_exec(@args);
+        ($stdout, $stderr, $success, $exit_code) = capture_exec(@args);
 
     Captures and returns the output from "system(@args)". In scalar context,
     "capture_exec()" will return what was printed to "STDOUT". In list
     context, it returns what was printed to "STDOUT" and "STDERR" as well as
     a success flag and the exit value.
 
-         $stdout = capture_exec('perl', '-e', 'print "hello world"');
- 
-         ($stdout, $stderr, $success, $exit_code) = 
-             capture_exec('perl', '-e', 'warn "Test"');
+        $stdout = capture_exec('perl', '-e', 'print "hello world"');
+
+        ($stdout, $stderr, $success, $exit_code) =
+            capture_exec('perl', '-e', 'warn "Test"');
 
     "capture_exec" passes its arguments to "system()" and on MSWin32 will
     protect arguments with shell quotes if necessary. This makes it a handy
@@ -132,20 +136,20 @@ FUNCTIONS
     the "system()" call is available both in the $exit_code returned and in
     the $? variable.
 
-       ($stdout, $stderr, $success, $exit_code) = 
-           capture_exec('perl', '-e', 'warn "Test" and exit 1');
- 
-       if ( ! $success ) {
-           print "The exit code was " . ($exit_code >> 8) . "\n";
-       }
+      ($stdout, $stderr, $success, $exit_code) =
+          capture_exec('perl', '-e', 'warn "Test" and exit 1');
+
+      if ( ! $success ) {
+          print "The exit code was " . ($exit_code >> 8) . "\n";
+      }
 
     See perlvar for more information on interpreting a child process exit
     code.
 
   capture_exec_combined()
-         ($combined, $success, $exit_code) = capture_exec_combined(
-             'perl', '-e', 'print "hello\n"', 'warn "Test\n"
-         );
+        ($combined, $success, $exit_code) = capture_exec_combined(
+            'perl', '-e', 'print "hello\n"', 'warn "Test\n"
+        );
 
     This is just like "capture_exec()", except that it merges "STDERR" with
     "STDOUT" before capturing output.
@@ -161,6 +165,8 @@ FUNCTIONS
     This is an alias for "capture_exec_combined()".
 
 SEE ALSO
+    *   Capture::Tiny
+
     *   IPC::Open3
 
     *   IO::Capture
@@ -169,16 +175,35 @@ SEE ALSO
 
     *   IPC::System::Simple
 
+SUPPORT
+  Bugs / Feature Requests
+    Please report any bugs or feature requests through the issue tracker at
+    <https://github.com/dagolden/IO-CaptureOutput/issues>. You will be
+    notified automatically of any progress on your issue.
+
+  Source Code
+    This is open source software. The code repository is available for
+    public review and contribution under the terms of the license.
+
+    <https://github.com/dagolden/IO-CaptureOutput>
+
+      git clone https://github.com/dagolden/IO-CaptureOutput.git
+
 AUTHORS
-    *   Simon Flack <simonflk _AT_ cpan.org> (original author)
+    *   Simon Flack <simonflk@cpan.org>
+
+    *   David Golden <dagolden@cpan.org>
+
+CONTRIBUTORS
+    *   Mike Latimer <mlatimer@suse.com>
+
+    *   Olivier Mengué <dolmen@cpan.org>
 
-    *   David Golden <dagolden _AT_ cpan.org> (co-maintainer since version
-        1.04)
+    *   Tony Cook <tony@develop-help.com>
 
 COPYRIGHT AND LICENSE
-    Portions copyright 2004, 2005 Simon Flack. Portions copyright 2007, 2008
-    David Golden. All rights reserved.
+    This software is copyright (c) 2015 by Simon Flack and David Golden.
 
-    You may distribute under the terms of either the GNU General Public
-    License or the Artistic License, as specified in the Perl README file.
+    This is free software; you can redistribute it and/or modify it under
+    the same terms as the Perl 5 programming language system itself.
 
@@ -1,11 +0,0 @@
-# Todo for IO::CaptureOutput
-
-#--------------------------------------------------------------------------#
-# Bugs
-#--------------------------------------------------------------------------#
-
-#--------------------------------------------------------------------------#
-# Features
-#--------------------------------------------------------------------------#
-
-
@@ -0,0 +1,44 @@
+requires "Carp" => "0";
+requires "Exporter" => "0";
+requires "File::Basename" => "0";
+requires "File::Temp" => "0.16";
+requires "Symbol" => "0";
+requires "perl" => "5.006";
+requires "strict" => "0";
+requires "vars" => "0";
+requires "warnings" => "0";
+
+on 'test' => sub {
+  requires "ExtUtils::MakeMaker" => "0";
+  requires "File::Spec" => "3.27";
+  requires "IO::File" => "0";
+  requires "Test::More" => "0.62";
+  requires "perl" => "5.006";
+};
+
+on 'test' => sub {
+  recommends "CPAN::Meta" => "2.120900";
+};
+
+on 'configure' => sub {
+  requires "ExtUtils::MakeMaker" => "6.17";
+  requires "perl" => "5.006";
+};
+
+on 'develop' => sub {
+  requires "Dist::Zilla" => "5";
+  requires "Dist::Zilla::Plugin::OSPrereqs" => "0";
+  requires "Dist::Zilla::Plugin::RemovePrereqs" => "0";
+  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072";
+  requires "File::Spec" => "0";
+  requires "File::Temp" => "0";
+  requires "IO::Handle" => "0";
+  requires "IPC::Open3" => "0";
+  requires "Pod::Coverage::TrustPod" => "0";
+  requires "Test::CPAN::Meta" => "0";
+  requires "Test::More" => "0";
+  requires "Test::Pod" => "1.41";
+  requires "Test::Pod::Coverage" => "1.08";
+  requires "Test::Spelling" => "0.12";
+  requires "Test::Version" => "1";
+};
@@ -0,0 +1,14 @@
+name = IO-CaptureOutput
+author = Simon Flack <simonflk@cpan.org>
+author = David Golden <dagolden@cpan.org>
+license = Perl_5
+copyright_holder = Simon Flack and David Golden
+
+[@DAGOLDEN]
+:version = 0.072
+
+[RemovePrereqs]
+remove = Win32
+
+[OSPrereqs / MSWin32]
+File::Spec = 3.27
@@ -1,64 +0,0 @@
-package Module::Build::DAGOLDEN;
-use strict;
-use Module::Build;
-use vars qw/@ISA/;
-@ISA = qw/Module::Build/;
-use File::Spec;
-
-sub ACTION_wikidoc {
-    my $self = shift;
-    eval "use Pod::WikiDoc";
-    if ( $@ eq '' ) {
-        my $parser = Pod::WikiDoc->new({ 
-            comment_blocks => 1,
-            keywords => { VERSION => $self->dist_version },
-        });
-        for my $src ( keys %{ $self->find_pm_files() } ) {
-            (my $tgt = $src) =~ s{\.pm$}{.pod};
-            $parser->filter( {
-                input   => $src,
-                output  => $tgt,
-            });
-            print "Creating $tgt\n";
-            $tgt =~ s{\\}{/}g;
-            $self->_add_to_manifest( 'MANIFEST', $tgt );
-        }
-    }
-    else {
-        warn "Pod::WikiDoc not available. Skipping wikidoc.\n";
-    }
-}
-
-sub ACTION_test {
-    my $self = shift;
-    my $missing_pod;
-    for my $src ( keys %{ $self->find_pm_files() } ) {
-        (my $tgt = $src) =~ s{\.pm$}{.pod};
-        $missing_pod = 1 if ! -e $tgt;
-    }
-    if ( $missing_pod ) {
-        $self->depends_on('wikidoc');
-        $self->depends_on('build');
-    }
-    $self->SUPER::ACTION_test;
-}
-
-sub ACTION_testpod {
-    my $self = shift;
-    $self->depends_on('wikidoc');
-    $self->SUPER::ACTION_testpod;
-}
-
-sub ACTION_distmeta {
-    my $self = shift;
-    $self->depends_on('wikidoc');
-    $self->SUPER::ACTION_distmeta;
-}
-
-sub ACTION_distdir {
-    my $self = shift;
-    $self->depends_on('wikidoc');
-    $self->SUPER::ACTION_distdir;
-}
-
-1;
@@ -1,14 +1,17 @@
-# $Id: CaptureOutput.pm,v 1.3 2005/03/25 12:44:14 simonflack Exp $
-package IO::CaptureOutput;
 use strict;
-use vars qw/$VERSION @ISA @EXPORT_OK %EXPORT_TAGS $CarpLevel/;
+use warnings;
+
+package IO::CaptureOutput;
+# ABSTRACT: capture STDOUT and STDERR from Perl code, subprocesses or XS
+
+our $VERSION = '1.1104';
+
+use vars qw/@ISA @EXPORT_OK %EXPORT_TAGS $CarpLevel/;
 use Exporter;
 use Carp qw/croak/;
 @ISA = 'Exporter';
 @EXPORT_OK = qw/capture capture_exec qxx capture_exec_combined qxy/;
 %EXPORT_TAGS = (all => \@EXPORT_OK);
-$VERSION = '1.1102';
-$VERSION = eval $VERSION; ## no critic
 $CarpLevel = 0; # help capture report errors at the right level
 
 sub _capture (&@) { ## no critic
@@ -21,7 +24,7 @@ sub _capture (&@) { ## no critic
       croak $error if $error;
     }
 
-    # if either $output or $error are defined, then we need a variable for 
+    # if either $output or $error are defined, then we need a variable for
     # results; otherwise we only capture to files and don't waste memory
     if ( defined $output || defined $error ) {
       for ($output, $error) {
@@ -30,25 +33,25 @@ sub _capture (&@) { ## no critic
       }
     }
 
-    # merge if same refs for $output and $error or if both are undef -- 
+    # merge if same refs for $output and $error or if both are undef --
     # i.e. capture \&foo, undef, undef, $merged_file
     # this means capturing into separate files *requires* at least one
     # capture variable
-    my $should_merge = 
-      (defined $error && defined $output && $output == $error) || 
-      ( !defined $output && !defined $error ) || 
+    my $should_merge =
+      (defined $error && defined $output && $output == $error) ||
+      ( !defined $output && !defined $error ) ||
       0;
 
     my ($capture_out, $capture_err);
 
-    # undef means capture anonymously; anything other than \undef means 
+    # undef means capture anonymously; anything other than \undef means
     # capture to that ref; \undef means skip capture
-    if ( !defined $output || $output != \undef ) { 
+    if ( !defined $output || $output != \undef ) {
         $capture_out = IO::CaptureOutput::_proxy->new(
             'STDOUT', $output, undef, $output_file
         );
     }
-    if ( !defined $error || $error != \undef ) { 
+    if ( !defined $error || $error != \undef ) {
         $capture_err = IO::CaptureOutput::_proxy->new(
             'STDERR', $error, ($should_merge ? 'STDOUT' : undef), $error_file
         );
@@ -62,7 +65,7 @@ sub _capture (&@) { ## no critic
 # Extra indirection for symmetry with capture_exec, etc.  Gets error reporting
 # to the right level
 sub capture (&@) { ## no critic
-    return &_capture; 
+    return &_capture;
 }
 
 sub capture_exec {
@@ -110,7 +113,7 @@ sub _validate {
     my $msg = q{};
 
     # \$out, \$out, $outfile, $errfile
-    if (    defined $output && defined $error  
+    if (    defined $output && defined $error
         &&  defined $output_file && defined $error_file
         &&  $output == $error
         &&  $output != \undef
@@ -119,7 +122,7 @@ sub _validate {
       $msg = "Merged STDOUT and STDERR, but specified different output and error files";
     }
     # undef, undef, $outfile, $errfile
-    elsif ( !defined $output && !defined $error  
+    elsif ( !defined $output && !defined $error
         &&  defined $output_file && defined $error_file
         &&  $output_file ne $error_file
     ) {
@@ -132,7 +135,7 @@ sub _validate {
 # Captures everything printed to a filehandle for the lifetime of the object
 # and then transfers it to a scalar reference
 package IO::CaptureOutput::_proxy;
-use File::Temp 'tempfile';
+use File::Temp 0.16 'tempfile';
 use File::Basename qw/basename/;
 use Symbol qw/gensym qualify qualify_to_ref/;
 use Carp;
@@ -182,7 +185,7 @@ sub new {
 sub DESTROY {
     my $self = shift;
 
-    my ($pid, $orig_fh, $saved_fh, $capture_var, $newio_fh, 
+    my ($pid, $orig_fh, $saved_fh, $capture_var, $newio_fh,
       $newio_file, $capture_file) = @$self;
     return unless $pid eq $$; # only cleanup in the process that is capturing
 
@@ -202,7 +205,7 @@ sub DESTROY {
         # some versions of perl complain about reading from fd 1 or 2
         # which could happen if STDOUT and STDERR were closed when $newio
         # was opened, so we just squelch warnings here and continue
-        local $^W; 
+        local $^W;
         seek $newio_fh, 0, 0;
         $$capture_var = do {local $/; <$newio_fh>};
     }
@@ -220,17 +223,17 @@ __END__
 
 =pod
 
-=begin wikidoc
+=encoding UTF-8
 
-= NAME
+=head1 NAME
 
 IO::CaptureOutput - capture STDOUT and STDERR from Perl code, subprocesses or XS
 
-= VERSION
+=head1 VERSION
 
-This documentation describes version %%VERSION%%.
+version 1.1104
 
-= SYNOPSIS
+=head1 SYNOPSIS
 
     use IO::CaptureOutput qw(capture qxx qxy);
 
@@ -246,59 +249,66 @@ This documentation describes version %%VERSION%%.
     # STDOUT and STDERR together from external command
     ($combined, $success) = qxy( @cmd );
 
-= DESCRIPTION
+=head1 DESCRIPTION
 
-This module provides routines for capturing STDOUT and STDERR from perl 
-subroutines, forked system calls (e.g. {system()}, {fork()}) and from 
-XS or C modules.
+B<This module is no longer recommended by the maintainer> - see
+L<Capture::Tiny> instead.
 
-= FUNCTIONS
+This module provides routines for capturing STDOUT and STDERR from perl
+subroutines, forked system calls (e.g. C<system()>, C<fork()>) and from XS
+or C modules.
+
+=head1 NAME
+
+=head1 FUNCTIONS
 
 The following functions will be exported on demand.
 
-== capture()
+=head2 capture()
 
     capture \&subroutine, \$stdout, \$stderr;
 
-Captures everything printed to {STDOUT} and {STDERR} for the duration of
-{&subroutine}. {$stdout} and {$stderr} are optional scalars that will contain
-{STDOUT} and {STDERR} respectively. 
+Captures everything printed to C<STDOUT> and C<STDERR> for the duration of
+C<&subroutine>. C<$stdout> and C<$stderr> are optional scalars that will
+contain C<STDOUT> and C<STDERR> respectively.
 
-{capture()} uses a code prototype so the first argument can be specified directly within 
-brackets if desired.
+C<capture()> uses a code prototype so the first argument can be specified
+directly within brackets if desired.
 
     # shorthand with prototype
-    capture { print __PACKAGE__ } \$stdout, \$stderr;
+    capture C< print __PACKAGE__ > \$stdout, \$stderr;
 
-Returns the return value(s) of {&subroutine}. The sub is called in the same
-context as {capture()} was called e.g.:
+Returns the return value(s) of C<&subroutine>. The sub is called in the
+same context as C<capture()> was called e.g.:
 
-    @rv = capture { wantarray } ; # returns true
-    $rv = capture { wantarray } ; # returns defined, but not true
-    capture { wantarray };       # void, returns undef
+    @rv = capture C< wantarray > ; # returns true
+    $rv = capture C< wantarray > ; # returns defined, but not true
+    capture C< wantarray >;       # void, returns undef
 
-{capture()} is able to capture output from subprocesses and C code, which
-traditional {tie()} methods of output capture are unable to do.
+C<capture()> is able to capture output from subprocesses and C code, which
+traditional C<tie()> methods of output capture are unable to do.
 
-*Note:* {capture()} will only capture output that has been written or flushed
-to the filehandle.
+B<Note:> C<capture()> will only capture output that has been written or
+flushed to the filehandle.
 
-If the two scalar references refer to the same scalar, then {STDERR} will be
-merged to {STDOUT} before capturing and the scalar will hold the combined
-output of both.
+If the two scalar references refer to the same scalar, then C<STDERR> will
+be merged to C<STDOUT> before capturing and the scalar will hold the
+combined output of both.
 
     capture \&subroutine, \$combined, \$combined;
 
-Normally, {capture()} uses anonymous, temporary files for capturing output.
-If desired, specific file names may be provided instead as additional options.
+Normally, C<capture()> uses anonymous, temporary files for capturing
+output.  If desired, specific file names may be provided instead as
+additional options.
 
     capture \&subroutine, \$stdout, \$stderr, $out_file, $err_file;
 
-Files provided will be clobbered, overwriting any previous data, but
-will persist after the call to {capture()} for inspection or other manipulation.
+Files provided will be clobbered, overwriting any previous data, but will
+persist after the call to C<capture()> for inspection or other
+manipulation.
 
-By default, when no references are provided to hold STDOUT or STDERR, output
-is captured and silently discarded.
+By default, when no references are provided to hold STDOUT or STDERR,
+output is captured and silently discarded.
 
     # Capture STDOUT, discard STDERR
     capture \&subroutine, \$stdout;
@@ -306,7 +316,8 @@ is captured and silently discarded.
     # Discard STDOUT, capture STDERR
     capture \&subroutine, undef, \$stderr;
 
-However, even when using {undef}, output can be captured to specific files.
+However, even when using C<undef>, output can be captured to specific
+files.
 
     # Capture STDOUT to a specific file, discard STDERR
     capture \&subroutine, \$stdout, undef, $outfile;
@@ -317,16 +328,16 @@ However, even when using {undef}, output can be captured to specific files.
     # Discard both, capture merged output to a specific file
     capture \&subroutine, undef, undef, $mergedfile;
 
-It is a fatal error to merge STDOUT and STDERR and request separate, specific
-files for capture.
+It is a fatal error to merge STDOUT and STDERR and request separate,
+specific files for capture.
 
     # ERROR:
     capture \&subroutine, \$stdout, \$stdout, $out_file, $err_file;
     capture \&subroutine, undef, undef, $out_file, $err_file;
 
-If either STDOUT or STDERR should be passed through to the terminal instead of
-captured, provide a reference to undef -- {\undef} -- instead of a capture
-variable.
+If either STDOUT or STDERR should be passed through to the terminal instead
+of captured, provide a reference to undef -- C<\undef> -- instead of a
+capture variable.
 
     # Capture STDOUT, display STDERR
     capture \&subroutine, \$stdout, \undef;
@@ -334,81 +345,146 @@ variable.
     # Display STDOUT, capture STDERR
     capture \&subroutine, \undef, \$stderr;
 
-== capture_exec()
+=head2 capture_exec()
 
     ($stdout, $stderr, $success, $exit_code) = capture_exec(@args);
 
-Captures and returns the output from {system(@args)}. In scalar context,
-{capture_exec()} will return what was printed to {STDOUT}. In list context,
-it returns what was printed to {STDOUT} and {STDERR} as well as a success
-flag and the exit value.
+Captures and returns the output from C<system(@args)>. In scalar context,
+C<capture_exec()> will return what was printed to C<STDOUT>. In list
+context, it returns what was printed to C<STDOUT> and C<STDERR> as well as
+a success flag and the exit value.
 
     $stdout = capture_exec('perl', '-e', 'print "hello world"');
 
-    ($stdout, $stderr, $success, $exit_code) = 
+    ($stdout, $stderr, $success, $exit_code) =
         capture_exec('perl', '-e', 'warn "Test"');
 
-{capture_exec} passes its arguments to {system()} and on MSWin32 will protect
-arguments with shell quotes if necessary.  This makes it a handy and slightly
-more portable alternative to backticks, piped {open()} and {IPC::Open3}.
+C<capture_exec> passes its arguments to C<system()> and on MSWin32 will
+protect arguments with shell quotes if necessary.  This makes it a handy
+and slightly more portable alternative to backticks, piped C<open()> and
+C<IPC::Open3>.
 
-The {$success} flag returned will be true if the command ran successfully and
-false if it did not (if the command could not be run or if it ran and
+The C<$success> flag returned will be true if the command ran successfully
+and false if it did not (if the command could not be run or if it ran and
 returned a non-zero exit value).  On failure, the raw exit value of the
-{system()} call is available both in the {$exit_code} returned and in the {$?}
-variable.
+C<system()> call is available both in the C<$exit_code> returned and in the
+C<$?> variable.
 
-  ($stdout, $stderr, $success, $exit_code) = 
+  ($stdout, $stderr, $success, $exit_code) =
       capture_exec('perl', '-e', 'warn "Test" and exit 1');
 
   if ( ! $success ) {
       print "The exit code was " . ($exit_code >> 8) . "\n";
   }
 
-See [perlvar] for more information on interpreting a child process
-exit code.
+See L<perlvar> for more information on interpreting a child process exit
+code.
 
-== capture_exec_combined()
+=head2 capture_exec_combined()
 
     ($combined, $success, $exit_code) = capture_exec_combined(
         'perl', '-e', 'print "hello\n"', 'warn "Test\n"
     );
 
-This is just like {capture_exec()}, except that it merges {STDERR} with {STDOUT}
-before capturing output.
+This is just like C<capture_exec()>, except that it merges C<STDERR> with
+C<STDOUT> before capturing output.
+
+B<Note:> there is no guarantee that text printed to C<STDOUT> and C<STDERR>
+in the subprocess will be appear in order. The actual order will depend on
+how IO buffering is handled in the subprocess.
+
+=head2 qxx()
+
+This is an alias for C<capture_exec()>.
+
+=head2 qxy()
+
+This is an alias for C<capture_exec_combined()>.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item *
+
+L<Capture::Tiny>
+
+=item *
+
+L<IPC::Open3>
+
+=item *
+
+L<IO::Capture>
+
+=item *
+
+L<IO::Utils>
+
+=item *
+
+L<IPC::System::Simple>
+
+=back
+
+=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
+
+=head1 SUPPORT
+
+=head2 Bugs / Feature Requests
+
+Please report any bugs or feature requests through the issue tracker
+at L<https://github.com/dagolden/IO-CaptureOutput/issues>.
+You will be notified automatically of any progress on your issue.
+
+=head2 Source Code
+
+This is open source software.  The code repository is available for
+public review and contribution under the terms of the license.
+
+L<https://github.com/dagolden/IO-CaptureOutput>
+
+  git clone https://github.com/dagolden/IO-CaptureOutput.git
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Simon Flack <simonflk@cpan.org>
+
+=item *
+
+David Golden <dagolden@cpan.org>
+
+=back
 
-*Note:* there is no guarantee that text printed to {STDOUT} and {STDERR} in the
-subprocess will be appear in order. The actual order will depend on how IO
-buffering is handled in the subprocess.
+=head1 CONTRIBUTORS
 
-== qxx()
+=for stopwords Mike Latimer Olivier Mengué Tony Cook
 
-This is an alias for {capture_exec()}.
+=over 4
 
-== qxy()
+=item *
 
-This is an alias for {capture_exec_combined()}.
+Mike Latimer <mlatimer@suse.com>
 
-= SEE ALSO
+=item *
 
-* [IPC::Open3]
-* [IO::Capture]
-* [IO::Utils]
-* [IPC::System::Simple]
+Olivier Mengué <dolmen@cpan.org>
 
-= AUTHORS
+=item *
 
-* Simon Flack <simonflk _AT_ cpan.org> (original author)
-* David Golden <dagolden _AT_ cpan.org> (co-maintainer since version 1.04)
+Tony Cook <tony@develop-help.com>
 
-= COPYRIGHT AND LICENSE
+=back
 
-Portions copyright 2004, 2005 Simon Flack.  Portions copyright 2007, 2008 David
-Golden.  All rights reserved.
+=head1 COPYRIGHT AND LICENSE
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+This software is copyright (c) 2015 by Simon Flack and David Golden.
 
-=end wikidoc 
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
 
 =cut
@@ -1,217 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-
-=head1 NAME
-
-IO::CaptureOutput - capture STDOUT and STDERR from Perl code, subprocesses or XS
-
-=head1 VERSION
-
-This documentation describes version 1.1102.
-
-=head1 SYNOPSIS
-
-     use IO::CaptureOutput qw(capture qxx qxy);
- 
-     # STDOUT and STDERR separately
-     capture { noisy_sub(@args) } \$stdout, \$stderr;
- 
-     # STDOUT and STDERR together
-     capture { noisy_sub(@args) } \$combined, \$combined;
- 
-     # STDOUT and STDERR from external command
-     ($stdout, $stderr, $success) = qxx( @cmd );
- 
-     # STDOUT and STDERR together from external command
-     ($combined, $success) = qxy( @cmd );
-
-=head1 DESCRIPTION
-
-This module provides routines for capturing STDOUT and STDERR from perl 
-subroutines, forked system calls (e.g. C<<< system() >>>, C<<< fork() >>>) and from 
-XS or C modules.
-
-=head1 FUNCTIONS
-
-The following functions will be exported on demand.
-
-=head2 capture()
-
-     capture \&subroutine, \$stdout, \$stderr;
-
-Captures everything printed to C<<< STDOUT >>> and C<<< STDERR >>> for the duration of
-C<<< &subroutine >>>. C<<< $stdout >>> and C<<< $stderr >>> are optional scalars that will contain
-C<<< STDOUT >>> and C<<< STDERR >>> respectively. 
-
-C<<< capture() >>> uses a code prototype so the first argument can be specified directly within 
-brackets if desired.
-
-     # shorthand with prototype
-     capture { print __PACKAGE__ } \$stdout, \$stderr;
-
-Returns the return value(s) of C<<< &subroutine >>>. The sub is called in the same
-context as C<<< capture() >>> was called e.g.:
-
-     @rv = capture { wantarray } ; # returns true
-     $rv = capture { wantarray } ; # returns defined, but not true
-     capture { wantarray };       # void, returns undef
-
-C<<< capture() >>> is able to capture output from subprocesses and C code, which
-traditional C<<< tie() >>> methods of output capture are unable to do.
-
-B<Note:> C<<< capture() >>> will only capture output that has been written or flushed
-to the filehandle.
-
-If the two scalar references refer to the same scalar, then C<<< STDERR >>> will be
-merged to C<<< STDOUT >>> before capturing and the scalar will hold the combined
-output of both.
-
-     capture \&subroutine, \$combined, \$combined;
-
-Normally, C<<< capture() >>> uses anonymous, temporary files for capturing output.
-If desired, specific file names may be provided instead as additional options.
-
-     capture \&subroutine, \$stdout, \$stderr, $out_file, $err_file;
-
-Files provided will be clobbered, overwriting any previous data, but
-will persist after the call to C<<< capture() >>> for inspection or other manipulation.
-
-By default, when no references are provided to hold STDOUT or STDERR, output
-is captured and silently discarded.
-
-     # Capture STDOUT, discard STDERR
-     capture \&subroutine, \$stdout;
- 
-     # Discard STDOUT, capture STDERR
-     capture \&subroutine, undef, \$stderr;
-
-However, even when using C<<< undef >>>, output can be captured to specific files.
-
-     # Capture STDOUT to a specific file, discard STDERR
-     capture \&subroutine, \$stdout, undef, $outfile;
- 
-     # Discard STDOUT, capture STDERR to a specific file
-     capture \&subroutine, undef, \$stderr, undef, $err_file;
- 
-     # Discard both, capture merged output to a specific file
-     capture \&subroutine, undef, undef, $mergedfile;
-
-It is a fatal error to merge STDOUT and STDERR and request separate, specific
-files for capture.
-
-     # ERROR:
-     capture \&subroutine, \$stdout, \$stdout, $out_file, $err_file;
-     capture \&subroutine, undef, undef, $out_file, $err_file;
-
-If either STDOUT or STDERR should be passed through to the terminal instead of
-captured, provide a reference to undef -- C<<< \undef >>> -- instead of a capture
-variable.
-
-     # Capture STDOUT, display STDERR
-     capture \&subroutine, \$stdout, \undef;
- 
-     # Display STDOUT, capture STDERR
-     capture \&subroutine, \undef, \$stderr;
-
-=head2 capture_exec()
-
-     ($stdout, $stderr, $success, $exit_code) = capture_exec(@args);
-
-Captures and returns the output from C<<< system(@args) >>>. In scalar context,
-C<<< capture_exec() >>> will return what was printed to C<<< STDOUT >>>. In list context,
-it returns what was printed to C<<< STDOUT >>> and C<<< STDERR >>> as well as a success
-flag and the exit value.
-
-     $stdout = capture_exec('perl', '-e', 'print "hello world"');
- 
-     ($stdout, $stderr, $success, $exit_code) = 
-         capture_exec('perl', '-e', 'warn "Test"');
-
-C<<< capture_exec >>> passes its arguments to C<<< system() >>> and on MSWin32 will protect
-arguments with shell quotes if necessary.  This makes it a handy and slightly
-more portable alternative to backticks, piped C<<< open() >>> and C<<< IPC::Open3 >>>.
-
-The C<<< $success >>> flag returned will be true if the command ran successfully and
-false if it did not (if the command could not be run or if it ran and
-returned a non-zero exit value).  On failure, the raw exit value of the
-C<<< system() >>> call is available both in the C<<< $exit_code >>> returned and in the C<<< $? >>>
-variable.
-
-   ($stdout, $stderr, $success, $exit_code) = 
-       capture_exec('perl', '-e', 'warn "Test" and exit 1');
- 
-   if ( ! $success ) {
-       print "The exit code was " . ($exit_code >> 8) . "\n";
-   }
-
-See L<perlvar> for more information on interpreting a child process
-exit code.
-
-=head2 capture_exec_combined()
-
-     ($combined, $success, $exit_code) = capture_exec_combined(
-         'perl', '-e', 'print "hello\n"', 'warn "Test\n"
-     );
-
-This is just like C<<< capture_exec() >>>, except that it merges C<<< STDERR >>> with C<<< STDOUT >>>
-before capturing output.
-
-B<Note:> there is no guarantee that text printed to C<<< STDOUT >>> and C<<< STDERR >>> in the
-subprocess will be appear in order. The actual order will depend on how IO
-buffering is handled in the subprocess.
-
-=head2 qxx()
-
-This is an alias for C<<< capture_exec() >>>.
-
-=head2 qxy()
-
-This is an alias for C<<< capture_exec_combined() >>>.
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<IPC::Open3>
-
-=item *
-
-L<IO::Capture>
-
-=item *
-
-L<IO::Utils>
-
-=item *
-
-L<IPC::System::Simple>
-
-=back
-
-=head1 AUTHORS
-
-=over
-
-=item *
-
-Simon Flack E<lt>simonflk _AT_ cpan.orgE<gt> (original author)
-
-=item *
-
-David Golden E<lt>dagolden _AT_ cpan.orgE<gt> (co-maintainer since version 1.04)
-
-=back
-
-=head1 COPYRIGHT AND LICENSE
-
-Portions copyright 2004, 2005 Simon Flack.  Portions copyright 2007, 2008 David
-Golden.  All rights reserved.
-
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
-
-
@@ -0,0 +1,26 @@
+severity = 5
+verbose = 8
+
+[Variables::ProhibitPunctuationVars]
+allow = $@ $!
+
+[TestingAndDebugging::ProhibitNoStrict]
+allow = refs
+
+[Variables::ProhibitEvilVariables]
+variables = $DB::single
+
+# Turn these off
+[-BuiltinFunctions::ProhibitStringyEval]
+[-ControlStructures::ProhibitPostfixControls]
+[-ControlStructures::ProhibitUnlessBlocks]
+[-Documentation::RequirePodSections]
+[-InputOutput::ProhibitInteractiveTest]
+[-References::ProhibitDoubleSigils]
+[-RegularExpressions::RequireExtendedFormatting]
+[-InputOutput::ProhibitTwoArgOpen]
+[-Modules::ProhibitEvilModules]
+
+# Turn this on
+[Lax::ProhibitStringyEval::ExceptForRequire]
+
@@ -0,0 +1,54 @@
+do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '6.17',
+                                        'perl' => '5.006'
+                                      }
+                      },
+       'develop' => {
+                      'requires' => {
+                                      'Dist::Zilla' => '5',
+                                      'Dist::Zilla::Plugin::OSPrereqs' => '0',
+                                      'Dist::Zilla::Plugin::RemovePrereqs' => '0',
+                                      'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.072',
+                                      'File::Spec' => '0',
+                                      'File::Temp' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::More' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08',
+                                      'Test::Spelling' => '0.12',
+                                      'Test::Version' => '1'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'Carp' => '0',
+                                      'Exporter' => '0',
+                                      'File::Basename' => '0',
+                                      'File::Temp' => '0.16',
+                                      'Symbol' => '0',
+                                      'perl' => '5.006',
+                                      'strict' => '0',
+                                      'vars' => '0',
+                                      'warnings' => '0'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec' => '3.27',
+                                   'IO::File' => '0',
+                                   'Test::More' => '0.62',
+                                   'perl' => '5.006'
+                                 }
+                 }
+     };
+  $x;
+ }
\ No newline at end of file
@@ -0,0 +1,176 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+use File::Spec;
+
+# from $version::LAX
+my $lax_version_re =
+    qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
+            |
+            (?:\.[0-9]+) (?:_[0-9]+)?
+        ) | (?:
+            v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
+            |
+            (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
+        )
+    )/x;
+
+# hide optional CPAN::Meta modules from prereq scanner
+# and check if they are available
+my $cpan_meta = "CPAN::Meta";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
+my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
+
+# Verify requirements?
+my $DO_VERIFY_PREREQS = 1;
+
+sub _max {
+    my $max = shift;
+    $max = ( $_ > $max ) ? $_ : $max for @_;
+    return $max;
+}
+
+sub _merge_prereqs {
+    my ($collector, $prereqs) = @_;
+
+    # CPAN::Meta::Prereqs object
+    if (ref $collector eq $cpan_meta_pre) {
+        return $collector->with_merged_prereqs(
+            CPAN::Meta::Prereqs->new( $prereqs )
+        );
+    }
+
+    # Raw hashrefs
+    for my $phase ( keys %$prereqs ) {
+        for my $type ( keys %{ $prereqs->{$phase} } ) {
+            for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+                $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+            }
+        }
+    }
+
+    return $collector;
+}
+
+my @include = qw(
+
+);
+
+my @exclude = qw(
+
+);
+
+# Add static prereqs to the included modules list
+my $static_prereqs = do 't/00-report-prereqs.dd';
+
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+    ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+    $static_prereqs
+);
+
+# Add dynamic prereqs to the included modules list (if we can)
+my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
+if ( $source && $HAS_CPAN_META ) {
+    if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+        $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
+    }
+}
+else {
+    $source = 'static metadata';
+}
+
+my @full_reports;
+my @dep_errors;
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
+
+# Add static includes into a fake section
+for my $mod (@include) {
+    $req_hash->{other}{modules}{$mod} = 0;
+}
+
+for my $phase ( qw(configure build test runtime develop other) ) {
+    next unless $req_hash->{$phase};
+    next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+    for my $type ( qw(requires recommends suggests conflicts modules) ) {
+        next unless $req_hash->{$phase}{$type};
+
+        my $title = ucfirst($phase).' '.ucfirst($type);
+        my @reports = [qw/Module Want Have/];
+
+        for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+            next if $mod eq 'perl';
+            next if grep { $_ eq $mod } @exclude;
+
+            my $file = $mod;
+            $file =~ s{::}{/}g;
+            $file .= ".pm";
+            my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
+
+            my $want = $req_hash->{$phase}{$type}{$mod};
+            $want = "undef" unless defined $want;
+            $want = "any" if !$want && $want == 0;
+
+            my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+            if ($prefix) {
+                my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
+                $have = "undef" unless defined $have;
+                push @reports, [$mod, $want, $have];
+
+                if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
+                    if ( $have !~ /\A$lax_version_re\z/ ) {
+                        push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+                    }
+                    elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+                        push @dep_errors, "$mod version '$have' is not in required range '$want'";
+                    }
+                }
+            }
+            else {
+                push @reports, [$mod, $want, "missing"];
+
+                if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+                    push @dep_errors, "$mod is not installed ($req_string)";
+                }
+            }
+        }
+
+        if ( @reports ) {
+            push @full_reports, "=== $title ===\n\n";
+
+            my $ml = _max( map { length $_->[0] } @reports );
+            my $wl = _max( map { length $_->[1] } @reports );
+            my $hl = _max( map { length $_->[2] } @reports );
+            splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+
+            push @full_reports, map { sprintf("    %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+            push @full_reports, "\n";
+        }
+    }
+}
+
+if ( @full_reports ) {
+    diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
+}
+
+if ( @dep_errors ) {
+    diag join("\n",
+        "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+        "The following REQUIRED prerequisites were not satisfied:\n",
+        @dep_errors,
+        "\n"
+    );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 #$Id: capture.t,v 1.3 2004/11/22 19:51:09 simonflack Exp $
 use strict;
-use Test::More tests => 21;
+use Test::More 0.62 tests => 21;
 use IO::CaptureOutput qw/capture/;
 use Config;
 
@@ -74,17 +74,22 @@ like($@, "/^self-terminating at " . quotemeta(__FILE__) . "/",
 ok($out eq '.' && $err eq '5..4..3..2..1..', 
     'capture() still populates output and error variables if the code dies');
 
-# test fork()
-sub forked_output {
-    fork or do {
-        print "forked";
-        print STDERR "Child pid $$";
-        exit;
-    };
-    select undef, undef, undef, 0.2;
+SKIP: {
+    my $can_fork = $Config{d_fork} || $Config{d_pseudofork}
+      || ( $^O eq "MSWin32" && $Config{useithreads} && $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS\b/ );
+    skip "fork not available", 1 unless $can_fork;
+    # test fork()
+    sub forked_output {
+        fork or do {
+            print "forked";
+            print STDERR "Child pid $$";
+            exit;
+        };
+        select undef, undef, undef, 0.2;
+    }
+    capture \&forked_output, \$out, \$err;
+    ok($out eq 'forked' && $err =~ /^Child pid /, 'capture() traps fork() output');
 }
-capture \&forked_output, \$out, \$err;
-ok($out eq 'forked' && $err =~ /^Child pid /, 'capture() traps fork() output');
 
 # Test printing via C code
 SKIP: {
@@ -1,11 +1,13 @@
 use strict;
 use IO::File;
 use File::Temp 0.16 ();
-use File::Spec;
 use Test::More;
 
 if ( $^O ne 'MSWin32' ) {
     plan skip_all => "not MSWin32";
+} else {
+    require File::Spec;
+    File::Spec->VERSION(3.27);
 }
 
 ( my $wperl = $^X ) =~ s/perl\.exe$/wperl.exe/i;
@@ -0,0 +1,54 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.051
+
+use Test::More;
+
+plan tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+my @module_files = (
+    'IO/CaptureOutput.pm'
+);
+
+
+
+# fake home for cpan-testers
+use File::Temp;
+local $ENV{HOME} = File::Temp::tempdir( CLEANUP => 1 );
+
+
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
+
+use File::Spec;
+use IPC::Open3;
+use IO::Handle;
+
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
+my @warnings;
+for my $lib (@module_files)
+{
+    # see L<perlfaq8/How can I capture STDERR from an external command?>
+    my $stderr = IO::Handle->new;
+
+    my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+    binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+    my @_warnings = <$stderr>;
+    waitpid($pid, 0);
+    is($?, 0, "$lib loaded ok");
+
+    if (@_warnings)
+    {
+        warn @_warnings;
+        push @warnings, @_warnings;
+    }
+}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found')
+    or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING};
+
+
@@ -0,0 +1,12 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use English qw(-no_match_vars);
+
+eval "use Test::Perl::Critic";
+plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
+Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc";
+all_critic_ok();
@@ -0,0 +1,31 @@
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
+use Test::Spelling 0.12;
+use Pod::Wordlist;
+
+
+add_stopwords(<DATA>);
+all_pod_files_spelling_ok( qw( bin lib  ) );
+__DATA__
+Simon
+Flack
+simonflk
+David
+Golden
+dagolden
+and
+Mike
+Latimer
+mlatimer
+Olivier
+Mengué
+dolmen
+Tony
+Cook
+tony
+lib
+IO
+CaptureOutput
@@ -1,9 +0,0 @@
-use strict;
-use warnings;
-use File::Spec;
-use Test::More;
-require Test::Perl::Critic;
-
-my $rcfile = File::Spec->catfile( 'xt', 'perlcriticrc' );
-Test::Perl::Critic->import( -profile => $rcfile );
-all_critic_ok( 'lib' );
@@ -1,19 +0,0 @@
-severity = 5
-
-[Variables::ProhibitPunctuationVars]
-allow = $@ $!
-
-# Turn these off
-[-BuiltinFunctions::ProhibitStringyEval]
-[-ControlStructures::ProhibitPostfixControls]
-[-ControlStructures::ProhibitUnlessBlocks]
-[-Documentation::RequirePodSections]
-[-InputOutput::ProhibitInteractiveTest]
-[-Miscellanea::RequireRcsKeywords]
-[-References::ProhibitDoubleSigils]
-[-RegularExpressions::RequireExtendedFormatting]
-[-InputOutput::ProhibitTwoArgOpen]
-
-# Turn this on
-[Lax::ProhibitStringyEval::ExceptForRequire]
-
@@ -1,13 +0,0 @@
-use Test::More;
-
-my $min_tpc = 1.08;
-eval "use Test::Pod::Coverage $min_tpc";
-plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage"
-    if $@;
-
-my $min_pc = 0.17;
-eval "use Pod::Coverage $min_pc";
-plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage"
-    if $@;
-
-all_pod_coverage_ok();
@@ -1,7 +0,0 @@
-use Test::More;
-
-my $min_tp = 1.22;
-eval "use Test::Pod $min_tp";
-plan skip_all => "Test::Pod $min_tp required for testing POD" if $@;
-
-all_pod_files_ok();
@@ -0,0 +1,6 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
+
+use Test::CPAN::Meta;
+
+meta_yaml_ok();
@@ -0,0 +1,8 @@
+#!perl
+
+use Test::More;
+
+eval "use Test::MinimumVersion";
+plan skip_all => "Test::MinimumVersion required for testing minimum versions"
+  if $@;
+all_minimum_version_ok( qq{5.010} );
@@ -0,0 +1,7 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
+
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -0,0 +1,6 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();
@@ -0,0 +1,12 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval 'use Test::Portability::Files';
+plan skip_all => 'Test::Portability::Files required for testing portability'
+    if $@;
+options(test_one_dot => 0);
+run_tests();
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::Version 0.003001
+use Test::Version;
+
+my @imports = ( 'version_all_ok' );
+
+my $params = {
+    is_strict   => 0,
+    has_version => 1,
+};
+
+push @imports, $params
+    if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
+
+
+Test::Version->import(@imports);
+
+version_all_ok;
+done_testing;
@@ -1,20 +0,0 @@
-use Test::More;
-
-my $min_tps = 0.11;
-eval "use Test::Spelling $min_tps";
-plan skip_all => "Test::Spelling $min_tps required for testing POD" if $@;
-system( "ispell -v" ) and plan skip_all => "No ispell";
-
-set_spell_cmd( "ispell -l" );
-add_stopwords( qw(
-    MSWin
-    CPAN
-    DAGOLDEN
-    README
-    STDERR
-    STDOUT
-    XS
-    co
-));
-
-all_pod_files_spelling_ok();