Test-Timer-2.11000755000765000024 013534515620 13354 5ustar00jonasbnstaff000000000000README100644000765000024 50513534515620 14275 0ustar00jonasbnstaff000000000000Test-Timer-2.11This archive contains the distribution Test-Timer, version 2.11: test module to test/assert response times This software is Copyright (c) 2019 by Jonas B. Nielsen. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) This README file was generated by Dist::Zilla::Plugin::Readme v6.012. LICENSE100644000765000024 2152513534515620 14467 0ustar00jonasbnstaff000000000000Test-Timer-2.11This software is Copyright (c) 2019 by Jonas B. Nielsen. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The Artistic License 2.0 Copyright (c) 2000-2006, The Perl Foundation. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble This license establishes the terms under which a given free software Package may be copied, modified, distributed, and/or redistributed. The intent is that the Copyright Holder maintains some artistic control over the development of that Package while still keeping the Package available as open source and free software. You are always permitted to make arrangements wholly outside of this license directly with the Copyright Holder of a given Package. If the terms of this license do not permit the full use that you propose to make of the Package, you should contact the Copyright Holder and seek a different licensing arrangement. Definitions "Copyright Holder" means the individual(s) or organization(s) named in the copyright notice for the entire Package. "Contributor" means any party that has contributed code or other material to the Package, in accordance with the Copyright Holder's procedures. "You" and "your" means any person who would like to copy, distribute, or modify the Package. "Package" means the collection of files distributed by the Copyright Holder, and derivatives of that collection and/or of those files. A given Package may consist of either the Standard Version, or a Modified Version. "Distribute" means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization, to others outside of your company or organization. "Distributor Fee" means any fee that you charge for Distributing this Package or providing support for this Package to another party. It does not mean licensing fees. "Standard Version" refers to the Package if it has not been modified, or has been modified only in ways explicitly requested by the Copyright Holder. "Modified Version" means the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. "Original License" means this Artistic License as Distributed with the Standard Version of the Package, in its current version or as it may be modified by The Perl Foundation in the future. "Source" form means the source code, documentation source, and configuration files for the Package. "Compiled" form means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. Permission for Use and Modification Without Distribution (1) You are permitted to use the Standard Version and create and use Modified Versions for any purpose without restriction, provided that you do not Distribute the Modified Version. Permissions for Redistribution of the Standard Version (2) You may Distribute verbatim copies of the Source form of the Standard Version of this Package in any medium without restriction, either gratis or for a Distributor Fee, provided that you duplicate all of the original copyright notices and associated disclaimers. At your discretion, such verbatim copies may or may not include a Compiled form of the Package. (3) You may apply any bug fixes, portability changes, and other modifications made available from the Copyright Holder. The resulting Package will still be considered the Standard Version, and as such will be subject to the Original License. Distribution of Modified Versions of the Package as Source (4) You may Distribute your Modified Version as Source (either gratis or for a Distributor Fee, and with or without a Compiled form of the Modified Version) provided that you clearly document how it differs from the Standard Version, including, but not limited to, documenting any non-standard features, executables, or modules, and provided that you do at least ONE of the following: (a) make the Modified Version available to the Copyright Holder of the Standard Version, under the Original License, so that the Copyright Holder may include your modifications in the Standard Version. (b) ensure that installation of your Modified Version does not prevent the user installing or running the Standard Version. In addition, the Modified Version must bear a name that is different from the name of the Standard Version. (c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under (i) the Original License or (ii) a license that permits the licensee to freely copy, modify and redistribute the Modified Version using the same licensing terms that apply to the copy that the licensee received, and requires that the Source form of the Modified Version, and of any works derived from it, be made freely available in that license fees are prohibited but Distributor Fees are allowed. Distribution of Compiled Forms of the Standard Version or Modified Versions without the Source (5) You may Distribute Compiled forms of the Standard Version without the Source, provided that you include complete instructions on how to get the Source of the Standard Version. Such instructions must be valid at the time of your distribution. If these instructions, at any time while you are carrying out such distribution, become invalid, you must provide new instructions on demand or cease further distribution. If you provide valid instructions or cease distribution within thirty days after you become aware that the instructions are invalid, then you do not forfeit any of your rights under this license. (6) You may Distribute a Modified Version in Compiled form without the Source, provided that you comply with Section 4 with respect to the Source of the Modified Version. Aggregating or Linking the Package (7) You may aggregate the Package (either the Standard Version or Modified Version) with other packages and Distribute the resulting aggregation provided that you do not charge a licensing fee for the Package. Distributor Fees are permitted, and licensing fees for other components in the aggregation are permitted. The terms of this license apply to the use and Distribution of the Standard or Modified Versions as included in the aggregation. (8) You are permitted to link Modified and Standard Versions with other works, to embed the Package in a larger work of your own, or to build stand-alone binary or bytecode versions of applications that include the Package, and Distribute the result without restriction, provided the result does not expose a direct interface to the Package. Items That are Not Considered Part of a Modified Version (9) Works (including, but not limited to, modules and scripts) that merely extend or make use of the Package, do not, by themselves, cause the Package to be a Modified Version. In addition, such works are not considered parts of the Package itself, and are not subject to the terms of this license. General Provisions (10) Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license. (11) If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license. (12) This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder. (13) This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed. (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Changes100644000765000024 1762013534515620 14756 0ustar00jonasbnstaff000000000000Test-Timer-2.11Revision history for Test-Timer 2.11 2019-09-06T17:43:07Z Maintenance release, update not required - Applied patch with POD improvements from Mohammad S Anwar 2.10 2019-02-19T16:13:40Z Maintenance release, update not required - Cleaned the code a bit and eliminated use of regular expression for parsing output from Benchmark REF: https://github.com/jonasbn/perl-test-timer/issues/21 2.09 2017-11-24 Maintenance release, update not required - Attempting to address issues with tests on Windows REF: http://www.cpantesters.org/distro/T/Test-Timer.html?grade=3&perlmat=2&patches=2&oncpan=2&distmat=2&perlver=ALL&osname=ALL&version=2.08 - Reinstated sleep over select in the test suite - Changed some test parameters was made a bit less relaxed attempting to decrease the execution time for the test suite - Removed loose match in regular, it should be possible to anticipate the timeout - Removed redundant tests, trying to cut down execution time for the test suite 2.08 2017-11-20 Maintenance release, update not required - Addressing reports on failing tests from CPAN testers 2.07 2017-11-18 Maintenance release, update not required - Addressing issue #17, the tests are now more liberal, so when executed on smokers, CI environments and similar, load will not influence the test results. The requirement for Test::Tester has been updated and a patch required by this distribution has been included 2.06 2017-11-14 Maintenance release, update not required - Added cancellation of alarm, based on advice from Erik Johansen - Implemented own sleep, based on select, this might address possible issues with sleep implementations 2.05 2017-11-12 Maintenance release, update not required - Addressed issue #11 adding experimental graphical support elements to the documentation 2.04 2017-10-15 Maintenance release, update not required - Minor improvements to Test::Timer::TimeoutException, some obsoleted code could be removed - Generalising test asserting, since CPAN testers are sometime constrained on resources, making it impossible to predict the actual timeout value Example: http://www.cpantesters.org/cpan/report/2561e32c-9efa-11e7-bc90-bbe42ddde1fb - Correction of spelling mistake in PR #16 from Gregor Herrmann of the Debian Perl Group 2.03 2017-07-01 Maintenance release, update not required - Minor clean up in code and tests 2.02 2017-06-30 Maintenance release, update recommended - Correction to documentation - Improvements to alarm signal handling and other internal parts - Addressed issue #15 meaning thresholds are now included in the assertions 2.01 2017-06-12 Bug fix release, update recommended - Fixed bug where execution/time would be reported as 0 (#13) 2.00 2017-06-06 Feature release, update recommended - Improved diagnostics based on feedback for change introduced in 1.00 from Nigel Horne. The actual measured time used is now presented (#12) - private subroutine _runtest_atleast factored out (#9) 1.00 2017-06-03 Feature release, update recommended - Implemented suggestion for improvement from Nigel Horne (#10) https://github.com/jonasbn/perl-test-timer/issues/10 This change impacts all the diagnostics, so these now communicate the relevant specified thresholds - Added Dist::Zilla plugins requirements causing issues to dist.ini, so these are explicitly specified - Exchanged CJM´s: https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromModule For Dave Rolskys: https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromMainModule There are some deprecation notices from Dist::Zilla making tests fail see XDG's PR: https://github.com/madsen/dist-zilla-plugins-cjm/pull/5 0.18 2016-12-30 Maintenance release, update not required - Reenabled Github issues over RT, the Dist::Zilla plugins not completely compatible 0.17 2016-12-30 Maintenance release, update not required - Exchanged use of Test::Exception for Test::Fatal - Exchanged use of: Dist::Zilla::Plugin::GitHub::Meta for Dist::Zilla::Plugin::GithubMeta to specify a proper homepage attribute Ref: https://metacpan.org/pod/Dist::Zilla::Plugin::GithubMeta 0.16 2016-12-29 Maintenance release, update not required - Elimination of warnings in test suite, PR from p-alik 0.15 2016-12-11 Maintenance release, update not required - Addressed Kwalitee test: has_meta_json - Addressing minor cosmetics issues in release 0.14 0.14 2016-12-10 Maintenance release, update not required - Corrections to file permissions, PR from Kent Fredric 0.13 2016-08-05 Maintenance release, update not required - Corrections to the POD, feedback from Nick Morrott 0.12 2015-08-02 Maintenance release, update not required - Added MetaProvides to Dist::Zilla build, this should assist in addressing the issue listed on CPANTS, see also below - Addressing issue with inconsistent version Ref: http://cpants.cpanauthors.org/dist/Test-Timer-0.11 0.11 2015-07-15 Maintenance release, update not required - Requirement for Perl 5.12 sneaked in [issue #3], analysed code with Perl::MinimumVersion and decided for Perl version 5.6.0 as minimum requirement 0.10 2015-06-01 Maintenance release, update not required - Test::Tester is marked as a normal runtime dependency [issue #2] (RT:1047699) https://github.com/jonasbn/testt/issues/2 - Upgraded license from Artistic license 1.0 to Artistic license 2.0 - Migrated build system from Module::Build to Dist::Zilla 0.09 2014-08-29 Maintenance release, update not required - Addressing [issue #1], the occassional report on failing the rigid test of test_between https://github.com/jonasbn/testt/issues/1 0.08 2014-02-22 Maintenance release, update not required - Repository migrated to Github from hosted Subversion - Plenty of POD updates - Added changes.t automatic assertion of the integrity of the Changes file, see also TESTT-4 [TESTT-6] https://logiclab.jira.com/browse/TESTT-6 0.07 2013-07-31 Maintenance release, update not required - Corrected minor issue in this file, had forgotten to run in through the validator http://changes.cpanhq.org/validate [TESTT-4] https://logiclab.jira.com/browse/TESTT-4 0.06 2013-07-26 Maintenance release, update not required - Fixed up Changes file as part of my Questhub quest adhering to the standard described in: CPAN::Changes::Spec [TESTT-3] Quest: http://questhub.io/realm/perl/quest/51f0fd8e18ba7dcf4b000040 Spec: https://metacpan.org/module/CPAN::Changes::Spec https://logiclab.jira.com/browse/TESTT-3 0.05 2008-11-16 Bug fix release, update not required - Added use of Test::Builder::Module - Added patch from brian d foy, bug in _run_test 0.04 2007-03-18 Maintenance release, update not required - Added creation of traditional Makefile.PL to Build.PL - Added Makefile.PL to MANIFEST 0.03 2007-03-11 Maintenance release, update not required - Removed version number from README - Read up on the Test::Perl::Critic documentation and updated my Perl::Critic test (t/critic.t), introducing t/perlcriticrc and added a few of the requirements needed by this test to build requirements - Moved Test::Tester to general requirements from build requirements - Minor changes to POD 0.02 2007-03-10 Feature release, update recommended - Removed support for reference to arrays as second parameter to time_nok, time_ok, time_almost and time_atleast - time_between is recommended - Read up on the Test::Builder does and eliminated the builder sub, this has also been removed from the test-suite (t/test-tester.t) - Added some more tests, to get better coverage, thanks to PJCJ for Devel::Cover this module really helps, since aiming at better coverage, makes you think about your tests and code and you can eliminate stuff you do not need - Updated POD added DIAGNOSTICS among other things - Fixed bug in Test::Timer, with alarm being scoped using my, should be our, pointed out by Paul Evans - Ran all code through perltidy 0.01 2007-03-01 Feature release - First version, released on an unsuspecting world. INSTALL100644000765000024 442413534515620 14472 0ustar00jonasbnstaff000000000000Test-Timer-2.11This is the Perl distribution Test-Timer. Installing Test-Timer is straightforward. ## Installation with cpanm If you have cpanm, you only need one line: % cpanm Test::Timer If it does not have permission to install modules to the current perl, cpanm will automatically set up and install to a local::lib in your home directory. See the local::lib documentation (https://metacpan.org/pod/local::lib) for details on enabling it in your environment. ## Installing with the CPAN shell Alternatively, if your CPAN shell is set up, you should just be able to do: % cpan Test::Timer ## Manual installation As a last resort, you can manually install it. Download the tarball, untar it, install configure prerequisites (see below), then build it: % perl Build.PL % ./Build && ./Build test Then install it: % ./Build install Or the more portable variation: % perl Build.PL % perl Build % perl Build test % perl Build install If your perl is system-managed, you can create a local::lib in your home directory to install modules to. For details, see the local::lib documentation: https://metacpan.org/pod/local::lib The prerequisites of this distribution will also have to be installed manually. The prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated by running the manual build process described above. ## Configure Prerequisites This distribution requires other modules to be installed before this distribution's installer can be run. They can be found under the "configure_requires" key of META.yml or the "{prereqs}{configure}{requires}" key of META.json. ## Other Prerequisites This distribution may require additional modules to be installed after running Build.PL or Makefile.PL. Look for prerequisites in the following phases: * to run ./Build or make, PHASE = build * to use the module code itself, PHASE = runtime * to run tests, PHASE = test They can all be found in the "PHASE_requires" key of MYMETA.yml or the "{prereqs}{PHASE}{requires}" key of MYMETA.json. ## Documentation Test-Timer documentation is available as POD. You can run `perldoc` from a shell to read the documentation: % perldoc Test::Timer For more information on installing Perl modules via CPAN, please see: https://www.cpan.org/modules/INSTALL.html META.yml100644000765000024 235613534515620 14714 0ustar00jonasbnstaff000000000000Test-Timer-2.11--- abstract: 'test module to test/assert response times' author: - 'Jonas B. Nielsen ' build_requires: File::Spec: '0' IO::Handle: '0' IPC::Open3: '0' Module::Build: '0.30' Pod::Coverage::TrustPod: '0' Test::Fatal: '0' Test::Kwalitee: '1.21' Test::More: '0' Test::Pod: '1.41' Test::Pod::Coverage: '1.08' Test::Tester: '1.302111' configure_requires: ExtUtils::MakeMaker: '0' Module::Build: '0.30' dynamic_config: 0 generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Test-Timer provides: Test::Timer: file: lib/Test/Timer.pm version: '2.11' Test::Timer::TimeoutException: file: lib/Test/Timer/TimeoutException.pm version: '2.11' requires: Benchmark: '0' Carp: '0' English: '0' Error: '0' Test::Builder: '0' Test::Builder::Module: '0' perl: '5.006' resources: bugtracker: https://github.com/jonasbn/perl-test-timer/issues homepage: https://jonasbn.github.io/perl-test-timer/ repository: https://github.com/jonasbn/perl-test-timer.git version: '2.11' x_generated_by_perl: v5.28.1 x_serialization_backend: 'YAML::Tiny version 1.73' MANIFEST100644000765000024 106113534515620 14564 0ustar00jonasbnstaff000000000000Test-Timer-2.11# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. Build.PL Changes INSTALL LICENSE MANIFEST MANIFEST.SKIP META.json META.yml Makefile.PL README cpanfile cpanfile.snapshot dist.ini docs/test-timer.graffle lib/Test/Timer.pm lib/Test/Timer/TimeoutException.pm perl-test-timer.code-workspace t/00-compile.t t/Test/Timer/Test.pm t/_benchmark.t t/author-critic.t t/author-pod-coverage.t t/author-pod-syntax.t t/perlcriticrc t/perltidyrc t/release-cpan-changes.t t/release-kwalitee.t t/release-meta-json.t t/test-tester.t t/time_alert.t cpanfile100644000765000024 173113534515620 15143 0ustar00jonasbnstaff000000000000Test-Timer-2.11requires 'Benchmark'; requires 'Carp'; requires 'English'; requires 'Error'; requires 'Test::Builder'; requires 'Test::Builder::Module'; requires 'perl', '5.006'; on 'build', sub { requires 'Module::Build', '0.30'; }; on 'test', sub { requires 'File::Spec'; requires 'IO::Handle'; requires 'IPC::Open3'; requires 'Pod::Coverage::TrustPod'; requires 'Test::Fatal'; requires 'Test::Kwalitee', '1.21'; requires 'Test::More'; requires 'Test::Pod', '1.41'; requires 'Test::Pod::Coverage', '1.08'; requires 'Test::Tester', '1.302111'; }; on 'configure', sub { requires 'ExtUtils::MakeMaker'; requires 'Module::Build', '0.30'; }; on 'develop', sub { requires 'Pod::Coverage::TrustPod'; requires 'Test::CPAN::Changes', '0.19'; requires 'Test::CPAN::Meta::JSON', '0.16'; requires 'Test::Kwalitee', '1.21'; requires 'Test::Perl::Critic'; requires 'Test::Pod', '1.41'; requires 'Test::Pod::Coverage', '1.08'; }; dist.ini100644000765000024 533013534515620 15102 0ustar00jonasbnstaff000000000000Test-Timer-2.11; REF: Dist::Zilla https://metacpan.org/pod/Dist::Zilla name = Test-Timer main_module = lib/Test/Timer.pm author = Jonas B. Nielsen license = Artistic_2_0 copyright_holder = Jonas B. Nielsen ; REF: https://metacpan.org/pod/Dist::Zilla::PluginBundle::Filter [@Filter] -bundle = @Basic -remove = GatherDir ; REF: https://metacpan.org/pod/Dist::Zilla::Plugin::GatherDir [GatherDir] ; this plugin needs no config and gathers most of your files exclude_filename = LICENSE ; REF: Dist::Zilla https://metacpan.org/pod/Dist::Zilla ;[@Basic] ; REF: Dist::Zilla::Plugin::GithubMeta: https://metacpan.org/pod/Dist::Zilla::Plugin::GithubMeta [GithubMeta] homepage = https://jonasbn.github.io/perl-test-timer/ issues = 1 ; REF: Dist::Zilla::Plugin::ReadmeAnyFromPod: https://metacpan.org/pod/Dist::Zilla::Plugin::ReadmeAnyFromPod ; REF: http://blogs.perl.org/users/ovid/2014/03/a-simple-distini-for-distzilla.html [ ReadmeAnyFromPod / MarkdownInRoot ] filename = README.md ; REF: Dist::Zilla::Plugin:::VersionFromMainModule https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromMainModule [VersionFromMainModule] ; REF: Dist::Zilla::Plugin::ExtraTests https://metacpan.org/pod/Dist::Zilla::Plugin::ExtraTests [ExtraTests] ; REF: Dist::Zilla::Plugin::Test::Perl::Critic https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Perl::Critic [Test::Perl::Critic] critic_config = t/perlcriticrc ; REF: Dist::Zilla::Plugin::PodCoverageTests: https://metacpan.org/pod/Dist::Zilla::Plugin::PodCoverageTests [PodCoverageTests] ; REF: Dist::Zilla::Plugin::PodSyntaxTests: https://metacpan.org/pod/Dist::Zilla::Plugin::PodSyntaxTests [PodSyntaxTests] ; REF: Dist::Zilla::Plugin::Test::Kwalitee: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Kwalitee [Test::Kwalitee] ; REF: Dist::Zilla::Plugin::Test::Compile: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Compile [Test::Compile] fail_on_warning = none ; REF: Dist::Zilla::Plugin::Test::CPAN::Changes: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::CPAN::Changes [Test::CPAN::Changes] ; REF: Dist::Zilla::Plugin::MetaJSON: https://metacpan.org/pod/Dist::Zilla::Plugin::MetaJSON [MetaJSON] ; REF: Dist::Zilla::Plugin::Test::CPAN::Meta::JSON: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON [Test::CPAN::Meta::JSON] ; REF: Dist::Zilla::Plugin::ModuleBuild: https://metacpan.org/pod/Dist::Zilla::Plugin::ModuleBuild [ModuleBuild] mb_version = 0.30 ; REF: Dist::Zilla::Plugin::MetaProvides::Package : https://metacpan.org/pod/Dist::Zilla::Plugin::MetaProvides::Package [MetaProvides::Package] ; REF: https://metacpan.org/pod/Dist::Zilla::Plugin::Prereqs::FromCPANfile [Prereqs::FromCPANfile] ; REF: https://metacpan.org/pod/Dist::Zilla::Plugin::InstallGuide [InstallGuide] Build.PL100644000765000024 321513534515620 14732 0ustar00jonasbnstaff000000000000Test-Timer-2.11 # This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.012. use strict; use warnings; use Module::Build 0.30; my %module_build_args = ( "build_requires" => { "Module::Build" => "0.30" }, "configure_requires" => { "ExtUtils::MakeMaker" => 0, "Module::Build" => "0.30" }, "dist_abstract" => "test module to test/assert response times", "dist_author" => [ "Jonas B. Nielsen " ], "dist_name" => "Test-Timer", "dist_version" => "2.11", "license" => "artistic_2", "module_name" => "Test::Timer", "recursive_test_files" => 1, "requires" => { "Benchmark" => 0, "Carp" => 0, "English" => 0, "Error" => 0, "Test::Builder" => 0, "Test::Builder::Module" => 0, "perl" => "5.006" }, "test_requires" => { "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Pod::Coverage::TrustPod" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" } ); my %fallback_build_requires = ( "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Module::Build" => "0.30", "Pod::Coverage::TrustPod" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" ); unless ( eval { Module::Build->VERSION(0.4004) } ) { delete $module_build_args{test_requires}; $module_build_args{build_requires} = \%fallback_build_requires; } my $build = Module::Build->new(%module_build_args); $build->create_build_script; META.json100644000765000024 475713534515620 15073 0ustar00jonasbnstaff000000000000Test-Timer-2.11{ "abstract" : "test module to test/assert response times", "author" : [ "Jonas B. Nielsen " ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Test-Timer", "prereqs" : { "build" : { "requires" : { "Module::Build" : "0.30" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0", "Module::Build" : "0.30" } }, "develop" : { "requires" : { "Pod::Coverage::TrustPod" : "0", "Test::CPAN::Changes" : "0.19", "Test::CPAN::Meta::JSON" : "0.16", "Test::Kwalitee" : "1.21", "Test::Perl::Critic" : "0", "Test::Pod" : "1.41", "Test::Pod::Coverage" : "1.08" } }, "runtime" : { "requires" : { "Benchmark" : "0", "Carp" : "0", "English" : "0", "Error" : "0", "Test::Builder" : "0", "Test::Builder::Module" : "0", "perl" : "5.006" } }, "test" : { "requires" : { "File::Spec" : "0", "IO::Handle" : "0", "IPC::Open3" : "0", "Pod::Coverage::TrustPod" : "0", "Test::Fatal" : "0", "Test::Kwalitee" : "1.21", "Test::More" : "0", "Test::Pod" : "1.41", "Test::Pod::Coverage" : "1.08", "Test::Tester" : "1.302111" } } }, "provides" : { "Test::Timer" : { "file" : "lib/Test/Timer.pm", "version" : "2.11" }, "Test::Timer::TimeoutException" : { "file" : "lib/Test/Timer/TimeoutException.pm", "version" : "2.11" } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/jonasbn/perl-test-timer/issues" }, "homepage" : "https://jonasbn.github.io/perl-test-timer/", "repository" : { "type" : "git", "url" : "https://github.com/jonasbn/perl-test-timer.git", "web" : "https://github.com/jonasbn/perl-test-timer" } }, "version" : "2.11", "x_generated_by_perl" : "v5.28.1", "x_serialization_backend" : "Cpanel::JSON::XS version 4.08" } Makefile.PL100644000765000024 353413534515620 15414 0ustar00jonasbnstaff000000000000Test-Timer-2.11# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. use strict; use warnings; use 5.006; use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "test module to test/assert response times", "AUTHOR" => "Jonas B. Nielsen ", "BUILD_REQUIRES" => { "Module::Build" => "0.30" }, "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Module::Build" => "0.30" }, "DISTNAME" => "Test-Timer", "LICENSE" => "artistic_2", "MIN_PERL_VERSION" => "5.006", "NAME" => "Test::Timer", "PREREQ_PM" => { "Benchmark" => 0, "Carp" => 0, "English" => 0, "Error" => 0, "Test::Builder" => 0, "Test::Builder::Module" => 0 }, "TEST_REQUIRES" => { "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Pod::Coverage::TrustPod" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" }, "VERSION" => "2.11", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "Benchmark" => 0, "Carp" => 0, "English" => 0, "Error" => 0, "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Module::Build" => "0.30", "Pod::Coverage::TrustPod" => 0, "Test::Builder" => 0, "Test::Builder::Module" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" ); 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) }; WriteMakefile(%WriteMakefileArgs); t000755000765000024 013534515620 13540 5ustar00jonasbnstaff000000000000Test-Timer-2.11perltidyrc100644000765000024 122413534515620 16003 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t# REF: http://www.perlmonks.org/?node_id=485885 # PBP .perltidyrc file -l=78 # Max line width is 78 cols -i=4 # Indent level is 4 cols -ci=4 # Continuation indent is 4 cols -se # Errors to STDERR -vt=2 # Maximal vertical tightness -cti=0 # No extra indentation for closing brackets -pt=1 # Medium parenthesis tightness -bt=1 # Medium brace tightness -sbt=1 # Medium square bracket tightness -bbt=1 # Medium block brace tightness -nsfs # No space before semicolons -nolq # Don't outdent long quoted strings -wbb="% + - * / x != == >= <= =~ < > | & **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" # Break before all operators MANIFEST.SKIP100644000765000024 406113534515620 15334 0ustar00jonasbnstaff000000000000Test-Timer-2.11############################################################################################ # Lifted from ExtUtils::MANIFEST # # ref: https://metacpan.org/source/ETHER/ExtUtils-Manifest-1.70/lib/ExtUtils/MANIFEST.SKIP # ############################################################################################ # Avoid version control files. \bRCS\b \bCVS\b \bSCCS\b ,v$ \B\.svn\b \B\.git\b \B\.gitignore\b \b_darcs\b \B\.cvsignore$ # Avoid VMS specific MakeMaker generated files \bDescrip.MMS$ \bDESCRIP.MMS$ \bdescrip.mms$ # Avoid Makemaker generated and utility files. \bMANIFEST\.bak \bMakefile$ \bblib/ \bMakeMaker-\d \bpm_to_blib\.ts$ \bpm_to_blib$ \bblibdirs\.ts$ # 6.18 through 6.25 generated this \b_eumm/ # 7.05_05 and above # Avoid Module::Build generated and utility files. \bBuild$ \b_build/ \bBuild.bat$ \bBuild.COM$ \bBUILD.COM$ \bbuild.com$ # and Module::Build::Tiny generated files \b_build_params$ # Avoid temp and backup files. ~$ \.old$ \#$ \b\.# \.bak$ \.tmp$ \.# \.rej$ \..*\.sw.?$ # Avoid OS-specific files/dirs # Mac OSX metadata \B\.DS_Store # Mac OSX SMB mount metadata files \B\._ # Avoid Devel::Cover and Devel::CoverX::Covered files. \bcover_db\b \bcovered\b # Avoid prove files \B\.prove$ # Avoid MYMETA files ^MYMETA\. ######################################################################### # My own additions # # ref: https://gist.github.com/jonasbn/aa6646544f2233de39f34c49532215ad # ######################################################################### # Avoid archives of perl distribution -[\d\.\_]+\.tar -[\d\.\_]+\.tar\.gz # Github files \.travis\.yml # Komodo files \.komodoproject \.kpf # SublimeText 2/3 files \.sublime-project \.sublime-workspace # Perl::Tidy error files \bperltidy\.ERR # Jekyll github pages files _config.yml ^assets README\.mkdn README\.md CONTRIBUTING\.md CODE_OF_CONDUCT\.md ^\.github/ # Avoid directory and files generated by carton ^local/ # Project files ^prototypes/ perlcriticrc100644000765000024 15301113534515620 16351 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t# Globals severity = 5 # force = 0 # only = 0 # allow-unsafe = 0 # profile-strictness = warn # color = 0 # pager = # top = 0 # verbose = 4 # include = # exclude = # single-policy = # theme = # color-severity-highest = bold red # color-severity-high = magenta # color-severity-medium = # color-severity-low = # color-severity-lowest = # program-extensions = # Use `List::MoreUtils::any' instead of `grep' in boolean context. [BuiltinFunctions::ProhibitBooleanGrep] # set_themes = certrec core pbp performance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Map blocks should have a single statement. [BuiltinFunctions::ProhibitComplexMappings] # set_themes = complexity core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum number of statements to allow within a map block. # Minimum value 1. No maximum. # max_statements = 1 # Use 4-argument `substr' instead of writing `substr($foo, 2, 6) = $bar'. [BuiltinFunctions::ProhibitLvalueSubstr] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Forbid $b before $a in sort blocks. [BuiltinFunctions::ProhibitReverseSortBlock] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Use Time::HiRes instead of something like `select(undef, undef, undef, .05)'. # TODO: Address the violation of this policy # REF: https://metacpan.org/pod/Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect [-BuiltinFunctions::ProhibitSleepViaSelect] # set_themes = bugs core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Write `eval { my $foo; bar($foo) }' instead of `eval "my $foo; bar($foo);"'. [BuiltinFunctions::ProhibitStringyEval] # set_themes = bugs certrule core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Allow eval of "use" and "require" strings. # allow_includes = 0 # Write `split /-/, $string' instead of `split '-', $string'. [BuiltinFunctions::ProhibitStringySplit] # set_themes = certrule core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Write `eval { $foo->can($name) }' instead of `UNIVERSAL::can($foo, $name)'. [BuiltinFunctions::ProhibitUniversalCan] # set_themes = certrule core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write `eval { $foo->isa($pkg) }' instead of `UNIVERSAL::isa($foo, $pkg)'. [BuiltinFunctions::ProhibitUniversalIsa] # set_themes = certrule core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Don't pass $_ to built-in functions that assume it, or to most filetest operators. [BuiltinFunctions::ProhibitUselessTopic] # set_themes = core # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Don't use `grep' in void contexts. [BuiltinFunctions::ProhibitVoidGrep] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Don't use `map' in void contexts. [BuiltinFunctions::ProhibitVoidMap] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write `grep { /$pattern/ } @list' instead of `grep /$pattern/, @list'. [BuiltinFunctions::RequireBlockGrep] # set_themes = bugs core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Write `map { /$pattern/ } @list' instead of `map /$pattern/, @list'. [BuiltinFunctions::RequireBlockMap] # set_themes = bugs core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Use `glob q{*}' instead of <*>. [BuiltinFunctions::RequireGlobFunction] # set_themes = bugs core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Sort blocks should have a single statement. [BuiltinFunctions::RequireSimpleSortBlock] # set_themes = complexity core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # AUTOLOAD methods should be avoided. [ClassHierarchies::ProhibitAutoloading] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Employ `use base' instead of `@ISA'. [ClassHierarchies::ProhibitExplicitISA] # set_themes = certrec core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write `bless {}, $class;' instead of just `bless {};'. [ClassHierarchies::ProhibitOneArgBless] # set_themes = bugs core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Use spaces instead of tabs. [CodeLayout::ProhibitHardTabs] # set_themes = core cosmetic pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Allow hard tabs before first non-whitespace character. # allow_leading_tabs = 1 # Write `open $handle, $path' instead of `open($handle, $path)'. [CodeLayout::ProhibitParensWithBuiltins] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Write `qw(foo bar baz)' instead of `('foo', 'bar', 'baz')'. [CodeLayout::ProhibitQuotedWordLists] # set_themes = core cosmetic # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # The minimum number of words in a list that will be complained about. # Minimum value 1. No maximum. # min_elements = 2 # Complain even if there are non-word characters in the values. # strict = 0 # Don't use whitespace at the end of lines. [CodeLayout::ProhibitTrailingWhitespace] # set_themes = core maintenance # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Use the same newline through the source. [CodeLayout::RequireConsistentNewlines] # set_themes = bugs core # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Must run code through perltidy. [CodeLayout::RequireTidyCode] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # The Perl::Tidy configuration file to use, if any. perltidyrc = t/perltidyrc # Put a comma at the end of every multi-line list declaration, including the last one. [CodeLayout::RequireTrailingCommas] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Write `for(0..20)' instead of `for($i=0; $i<=20; $i++)'. [ControlStructures::ProhibitCStyleForLoops] # set_themes = core maintenance pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Don't write long "if-elsif-elsif-elsif-elsif...else" chains. [ControlStructures::ProhibitCascadingIfElse] # set_themes = complexity core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum number of alternatives that will be allowed. # Minimum value 1. No maximum. # max_elsif = 2 # Don't write deeply nested loops and conditionals. [ControlStructures::ProhibitDeepNests] # set_themes = complexity core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum number of nested constructs to allow. # Minimum value 1. No maximum. # max_nests = 5 # Don't use labels that are the same as the special block names. [ControlStructures::ProhibitLabelsWithSpecialBlockNames] # set_themes = bugs core # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Don't modify `$_' in list functions. [ControlStructures::ProhibitMutatingListFunctions] # set_themes = bugs certrule core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # The base set of functions to check. # list_funcs = map grep List::Util::first List::MoreUtils::any List::MoreUtils::all List::MoreUtils::none List::MoreUtils::notall List::MoreUtils::true List::MoreUtils::false List::MoreUtils::firstidx List::MoreUtils::first_index List::MoreUtils::lastidx List::MoreUtils::last_index List::MoreUtils::insert_after List::MoreUtils::insert_after_string # The set of functions to check, in addition to those given in list_funcs. # add_list_funcs = # Don't use operators like `not', `!~', and `le' within `until' and `unless'. [ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write `if($condition){ do_something() }' instead of `do_something() if $condition'. [ControlStructures::ProhibitPostfixControls] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # The permitted postfix controls. # Valid values: for, foreach, if, unless, until, when, while. # allow = # The exempt flow control functions. # flowcontrol = carp cluck confess croak die exit goto warn # Write `if(! $condition)' instead of `unless($condition)'. [ControlStructures::ProhibitUnlessBlocks] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Don't write code after an unconditional `die, exit, or next'. [ControlStructures::ProhibitUnreachableCode] # set_themes = bugs certrec core # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Write `while(! $condition)' instead of `until($condition)'. [ControlStructures::ProhibitUntilBlocks] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Never use `...' in production code. [ControlStructures::ProhibitYadaOperator] # set_themes = core maintenance pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # The `=head1 NAME' section should match the package. [Documentation::RequirePackageMatchesPodName] # set_themes = core cosmetic # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # All POD should be after `__END__'. [Documentation::RequirePodAtEnd] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Provide text to display with your pod links. [Documentation::RequirePodLinksIncludeText] # set_themes = core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Allow external sections without text. # allow_external_sections = 1 # Allow internal sections without text. # allow_internal_sections = 1 # Organize your POD into the customary sections. [Documentation::RequirePodSections] # set_themes = core maintenance pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # The sections to require for modules (separated by qr/\s* [|] \s*/xms). # lib_sections = # The sections to require for programs (separated by qr/\s* [|] \s*/xms). # script_sections = # The origin of sections to use. # Valid values: book, book_first_edition, module_starter_pbp, module_starter_pbp_0_0_3. # source = book_first_edition # The spelling of sections to use. # Valid values: en_AU, en_US. # language = # Use functions from Carp instead of `warn' or `die'. [ErrorHandling::RequireCarping] # set_themes = certrule core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Don't complain about die or warn if the message ends in a newline. # allow_messages_ending_with_newlines = 1 # Don't complain about die or warn in main::, unless in a subroutine. # allow_in_main_unless_in_subroutine = 0 # You can't depend upon the value of `$@'/`$EVAL_ERROR' to tell whether an `eval' failed. [ErrorHandling::RequireCheckingReturnValueOfEval] # set_themes = bugs core # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Discourage stuff like `@files = `ls $directory`'. [InputOutput::ProhibitBacktickOperators] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Allow backticks everywhere except in void contexts. # only_in_void_context = # Write `open my $fh, q{<}, $filename;' instead of `open FH, q{<}, $filename;'. [InputOutput::ProhibitBarewordFileHandles] # set_themes = bugs certrec core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Use "<>" or "" or a prompting module instead of "". [InputOutput::ProhibitExplicitStdin] # set_themes = core maintenance pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Use prompt() instead of -t. [InputOutput::ProhibitInteractiveTest] # set_themes = bugs certrule core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Use `local $/ = undef' or Path::Tiny instead of joined readline. [InputOutput::ProhibitJoinedReadline] # set_themes = core pbp performance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Never write `select($fh)'. [InputOutput::ProhibitOneArgSelect] # set_themes = bugs certrule core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Write `while( $line = <> ){...}' instead of `for(<>){...}'. [InputOutput::ProhibitReadlineInForLoop] # set_themes = bugs core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Write `open $fh, q{<}, $filename;' instead of `open $fh, "<$filename";'. [InputOutput::ProhibitTwoArgOpen] # set_themes = bugs certrule core pbp security # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Write `print {$FH} $foo, $bar;' instead of `print $FH $foo, $bar;'. [InputOutput::RequireBracedFileHandleWithPrint] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Close filehandles as soon as possible after opening them. [InputOutput::RequireBriefOpen] # set_themes = core maintenance pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # The maximum number of lines between an open() and a close(). # Minimum value 1. No maximum. # lines = 9 # Write `my $error = close $fh;' instead of `close $fh;'. [InputOutput::RequireCheckedClose] # set_themes = certrule core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Write `my $error = open $fh, $mode, $filename;' instead of `open $fh, $mode, $filename;'. [InputOutput::RequireCheckedOpen] # set_themes = certrule core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Return value of flagged function ignored. [InputOutput::RequireCheckedSyscalls] # set_themes = certrule core maintenance # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # The set of functions to require checking the return value of. # functions = open close print say # The set of functions to not require checking the return value of. # exclude_functions = # Write `open $fh, q{<:encoding(UTF-8)}, $filename;' instead of `open $fh, q{<:utf8}, $filename;'. [InputOutput::RequireEncodingWithUTF8Layer] # set_themes = bugs core security # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Do not use `format'. [Miscellanea::ProhibitFormats] # set_themes = certrule core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Do not use `tie'. [Miscellanea::ProhibitTies] # set_themes = core maintenance pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Forbid a bare `## no critic' [Miscellanea::ProhibitUnrestrictedNoCritic] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Remove ineffective "## no critic" annotations. [Miscellanea::ProhibitUselessNoCritic] # set_themes = core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Export symbols via `@EXPORT_OK' or `%EXPORT_TAGS' instead of `@EXPORT'. [Modules::ProhibitAutomaticExportation] # set_themes = bugs core # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Avoid putting conditional logic around compile-time includes. [Modules::ProhibitConditionalUseStatements] # set_themes = bugs core # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Ban modules that aren't blessed by your shop. [Modules::ProhibitEvilModules] # set_themes = bugs certrule core # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # The names of or patterns for modules to forbid. # modules = Class::ISA {Found use of Class::ISA. This module is deprecated by the Perl 5 Porters.} Pod::Plainer {Found use of Pod::Plainer. This module is deprecated by the Perl 5 Porters.} Shell {Found use of Shell. This module is deprecated by the Perl 5 Porters.} Switch {Found use of Switch. This module is deprecated by the Perl 5 Porters.} # A file containing names of or patterns for modules to forbid. # modules_file = # Minimize complexity in code that is outside of subroutines. [Modules::ProhibitExcessMainComplexity] # set_themes = complexity core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum complexity score allowed. # Minimum value 1. No maximum. # max_mccabe = 20 # Put packages (especially subclasses) in separate files. [Modules::ProhibitMultiplePackages] # set_themes = bugs core # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Write `require Module' instead of `require 'Module.pm''. [Modules::RequireBarewordIncludes] # set_themes = core portability # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # End each module with an explicitly `1;' instead of some funky expression. [Modules::RequireEndWithOne] # set_themes = bugs certrule core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Always make the `package' explicit. [Modules::RequireExplicitPackage] # set_themes = bugs core # add_themes = # severity = 4 # maximum_violations_per_document = 1 # Don't require programs to contain a package statement. # exempt_scripts = 1 # Allow the specified modules to be imported outside a package. # allow_import_of = # Package declaration must match filename. [Modules::RequireFilenameMatchesPackage] # set_themes = bugs core # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # `use English' must be passed a `-no_match_vars' argument. [Modules::RequireNoMatchVarsWithUseEnglish] # set_themes = core performance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Give every module a `$VERSION' number. [Modules::RequireVersionVar] # set_themes = core pbp readability # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Distinguish different program components by case. [NamingConventions::Capitalization] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # How package name components should be capitalized. Valid values are :single_case, :all_lower, :all_upper:, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # packages = :starts_with_upper # Package names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # package_exemptions = main # How subroutine names should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # subroutines = :single_case # Subroutine names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # subroutine_exemptions = AUTOLOAD BUILD BUILDARGS CLEAR CLOSE DELETE DEMOLISH DESTROY EXISTS EXTEND FETCH FETCHSIZE FIRSTKEY GETC NEXTKEY POP PRINT PRINTF PUSH READ READLINE SCALAR SHIFT SPLICE STORE STORESIZE TIEARRAY TIEHANDLE TIEHASH TIESCALAR UNSHIFT UNTIE WRITE # How local lexical variables names should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # local_lexical_variables = :single_case # Local lexical variable names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # local_lexical_variable_exemptions = # How lexical variables that are scoped to a subset of subroutines, should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # scoped_lexical_variables = :single_case # Names for variables in anonymous blocks that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # scoped_lexical_variable_exemptions = # How lexical variables at the file level should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # file_lexical_variables = :single_case # File-scope lexical variable names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # file_lexical_variable_exemptions = # How global (package) variables should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # global_variables = :single_case # Global variable names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # global_variable_exemptions = \$VERSION @ISA @EXPORT(?:_OK)? %EXPORT_TAGS \$AUTOLOAD %ENV %SIG \$TODO # How constant names should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # constants = :all_upper # Constant names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # constant_exemptions = # How labels should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. # labels = :all_upper # Labels that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. # label_exemptions = # Don't use vague variable or subroutine names like 'last' or 'record'. [NamingConventions::ProhibitAmbiguousNames] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The variable names that are not to be allowed. # forbid = abstract bases close contract last left no record right second set # Prohibit indirect object call syntax. [Objects::ProhibitIndirectSyntax] # set_themes = certrule core maintenance pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Indirect method syntax is forbidden for these methods. # Values that are always included: new. # forbid = # Write `@{ $array_ref }' instead of `@$array_ref'. [References::ProhibitDoubleSigils] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Capture variable used outside conditional. [RegularExpressions::ProhibitCaptureWithoutTest] # set_themes = certrule core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Names of ways to generate exceptions. # Values that are always included: confess, croak, die. # exception_source = # Split long regexps into smaller `qr//' chunks. [RegularExpressions::ProhibitComplexRegexes] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum number of characters to allow in a regular expression. # Minimum value 1. No maximum. # max_characters = 60 # Use named character classes instead of explicit character lists. [RegularExpressions::ProhibitEnumeratedClasses] # set_themes = core cosmetic pbp unicode # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Use character classes for literal meta-characters instead of escapes. [RegularExpressions::ProhibitEscapedMetacharacters] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Use `eq' or hash instead of fixed-pattern regexps. [RegularExpressions::ProhibitFixedStringMatches] # set_themes = core pbp performance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Use `[abc]' instead of `a|b|c'. [RegularExpressions::ProhibitSingleCharAlternation] # set_themes = core pbp performance # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Only use a capturing group if you plan to use the captured value. [RegularExpressions::ProhibitUnusedCapture] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Use only `//' or `{}' to delimit regexps. [RegularExpressions::ProhibitUnusualDelimiters] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # In addition to allowing '{}', allow '()', '[]', and '{}'. # allow_all_brackets = # Don't use $_ to match against regexes. [RegularExpressions::ProhibitUselessTopic] # set_themes = core # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Use `{' and `}' to delimit multi-line regexps. [RegularExpressions::RequireBracesForMultiline] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # In addition to allowing '{}', allow '()', '[]', and '{}'. # allow_all_brackets = # Always use the `/s' modifier with regular expressions. [RegularExpressions::RequireDotMatchAnything] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Always use the `/x' modifier with regular expressions. [RegularExpressions::RequireExtendedFormatting] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The number of characters that a regular expression must contain before this policy will complain. # Minimum value 0. No maximum. # minimum_regex_length_to_complain_about = 0 # Should regexes that only contain whitespace and word characters be complained about?. # strict = 0 # Always use the `/m' modifier with regular expressions. [RegularExpressions::RequireLineBoundaryMatching] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Don't call functions with a leading ampersand sigil. [Subroutines::ProhibitAmpersandSigils] # set_themes = core maintenance pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Don't declare your own `open' function. [Subroutines::ProhibitBuiltinHomonyms] # set_themes = bugs certrule core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Minimize complexity by factoring code into smaller subroutines. [Subroutines::ProhibitExcessComplexity] # set_themes = complexity core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum complexity score allowed. # Minimum value 1. No maximum. # max_mccabe = 20 # Return failure with bare `return' instead of `return undef'. [Subroutines::ProhibitExplicitReturnUndef] # set_themes = bugs certrec core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Too many arguments. [Subroutines::ProhibitManyArgs] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The maximum number of arguments to allow a subroutine to have. # Minimum value 1. No maximum. # max_arguments = 5 # `sub never { sub correct {} }'. [Subroutines::ProhibitNestedSubs] # set_themes = bugs core # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Behavior of `sort' is not defined if called in scalar context. [Subroutines::ProhibitReturnSort] # set_themes = bugs certrule core # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Don't write `sub my_function (@@) {}'. [Subroutines::ProhibitSubroutinePrototypes] # set_themes = bugs certrec core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Prevent unused private subroutines. [Subroutines::ProhibitUnusedPrivateSubroutines] # set_themes = certrec core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Pattern that determines what a private subroutine is. # private_name_regex = \b_\w+\b # Subroutines matching the private name regex to allow under this policy. # allow = # Modules that, if used within a file, will cause the policy to be disabled for this file. # skip_when_using = # Prevent access to private subs in other packages. [Subroutines::ProtectPrivateSubs] # set_themes = certrule core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Pattern that determines what a private subroutine is. # private_name_regex = \b_\w+\b # Subroutines matching the private name regex to allow under this policy. # Values that are always included: POSIX::_PC_CHOWN_RESTRICTED, POSIX::_PC_LINK_MAX, POSIX::_PC_MAX_CANON, POSIX::_PC_MAX_INPUT, POSIX::_PC_NAME_MAX, POSIX::_PC_NO_TRUNC, POSIX::_PC_PATH_MAX, POSIX::_PC_PIPE_BUF, POSIX::_PC_VDISABLE, POSIX::_POSIX_ARG_MAX, POSIX::_POSIX_CHILD_MAX, POSIX::_POSIX_CHOWN_RESTRICTED, POSIX::_POSIX_JOB_CONTROL, POSIX::_POSIX_LINK_MAX, POSIX::_POSIX_MAX_CANON, POSIX::_POSIX_MAX_INPUT, POSIX::_POSIX_NAME_MAX, POSIX::_POSIX_NGROUPS_MAX, POSIX::_POSIX_NO_TRUNC, POSIX::_POSIX_OPEN_MAX, POSIX::_POSIX_PATH_MAX, POSIX::_POSIX_PIPE_BUF, POSIX::_POSIX_SAVED_IDS, POSIX::_POSIX_SSIZE_MAX, POSIX::_POSIX_STREAM_MAX, POSIX::_POSIX_TZNAME_MAX, POSIX::_POSIX_VDISABLE, POSIX::_POSIX_VERSION, POSIX::_SC_ARG_MAX, POSIX::_SC_CHILD_MAX, POSIX::_SC_CLK_TCK, POSIX::_SC_JOB_CONTROL, POSIX::_SC_NGROUPS_MAX, POSIX::_SC_OPEN_MAX, POSIX::_SC_PAGESIZE, POSIX::_SC_SAVED_IDS, POSIX::_SC_STREAM_MAX, POSIX::_SC_TZNAME_MAX, POSIX::_SC_VERSION, POSIX::_exit. # allow = # Always unpack `@_' first. [Subroutines::RequireArgUnpacking] # set_themes = core maintenance pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # The number of statements to allow without unpacking. # Minimum value 0. No maximum. # short_subroutine_statements = 0 # Should unpacking from array slices and elements be allowed?. # allow_subscripts = 0 # Allow the usual delegation idiom to these namespaces/subroutines. # Values that are always included: NEXT::, SUPER::. # allow_delegation_to = # End every path through a subroutine with an explicit `return' statement. [Subroutines::RequireFinalReturn] # set_themes = bugs certrec core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # The additional subroutines to treat as terminal. # Values that are always included: ..., Carp::confess, Carp::croak, confess, croak, die, exec, exit, throw. # terminal_funcs = # Prohibit various flavors of `no strict'. [TestingAndDebugging::ProhibitNoStrict] # set_themes = bugs certrec core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Allow vars, subs, and/or refs. # allow = # Prohibit various flavors of `no warnings'. [TestingAndDebugging::ProhibitNoWarnings] # set_themes = bugs certrec core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Permitted warning categories. # allow = # Allow "no warnings" if it restricts the kinds of warnings that are turned off. # allow_with_category_restriction = 0 # Don't turn off strict for large blocks of code. [TestingAndDebugging::ProhibitProlongedStrictureOverride] # set_themes = bugs certrec core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # The maximum number of statements in a no strict block. # Minimum value 1. No maximum. # statements = 3 # Tests should all have labels. [TestingAndDebugging::RequireTestLabels] # set_themes = core maintenance tests # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The additional modules to require labels for. # Values that are always included: Test::More. # modules = # Always `use strict'. [TestingAndDebugging::RequireUseStrict] # set_themes = bugs certrec certrule core pbp # add_themes = # severity = 5 # maximum_violations_per_document = 1 # The additional modules to treat as equivalent to "strict". # Values that are always included: Any::Moose, Dancer, Dancer2, Mo, Modern::Perl, Mojo::Base, Mojolicious::Lite, Moo, Moo::Role, Moos, Moose, Moose::Exporter, Moose::Role, Moose::Util::TypeConstraints, MooseX::NonMoose, MooseX::Role::Parameterized, MooseX::Singleton, Mouse, Mouse::Exporter, Mouse::Role, Mouse::Util, Mouse::Util::TypeConstraints, Mousse, sane, shit, strict, strictures. # equivalent_modules = # Always `use warnings'. [TestingAndDebugging::RequireUseWarnings] # set_themes = bugs certrule core pbp # add_themes = # severity = 4 # maximum_violations_per_document = 1 # The additional modules to treat as equivalent to "warnings". # Values that are always included: Any::Moose, Dancer, Dancer2, Mo, Modern::Perl, Mojo::Base, Mojolicious::Lite, Moo, Moo::Role, Moos, Moose, Moose::Exporter, Moose::Role, Moose::Util::TypeConstraints, MooseX::NonMoose, MooseX::Role::Parameterized, MooseX::Singleton, Mouse, Mouse::Exporter, Mouse::Role, Mouse::Util, Mouse::Util::TypeConstraints, Mousse, sane, shit, strictures, warnings. # equivalent_modules = # Don't use the comma operator as a statement separator. [ValuesAndExpressions::ProhibitCommaSeparatedStatements] # set_themes = bugs certrule core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Allow map and grep blocks to return lists. # allow_last_statement_to_be_comma_separated_in_map_and_grep = 0 # Prohibit version values from outside the module. [ValuesAndExpressions::ProhibitComplexVersion] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Make "use version; our $VERSION = qv('1.2.3');" a violation of this policy. # forbid_use_version = 0 # Don't `use constant FOO => 15'. # NOTE: We like constants, they are efficient [-ValuesAndExpressions::ProhibitConstantPragma] # set_themes = bugs core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Write `q{}' instead of `'''. [ValuesAndExpressions::ProhibitEmptyQuotes] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Write `"\N{DELETE}"' instead of `"\x7F"', etc. [ValuesAndExpressions::ProhibitEscapedCharacters] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Use concatenation or HEREDOCs instead of literal line breaks in strings. [ValuesAndExpressions::ProhibitImplicitNewlines] # set_themes = core cosmetic pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Always use single quotes for literal strings. [ValuesAndExpressions::ProhibitInterpolationOfLiterals] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # Kinds of delimiters to permit, e.g. "qq{", "qq(", "qq[", "qq/". # allow = # If the string contains ' characters, allow "" to quote it. # allow_if_string_contains_single_quote = 0 # Write `oct(755)' instead of `0755'. [ValuesAndExpressions::ProhibitLeadingZeros] # set_themes = bugs certrec core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Don't allow any leading zeros at all. Otherwise builtins that deal with Unix permissions, e.g. chmod, don't get flagged. # strict = 0 # Long chains of method calls indicate tightly coupled code. [ValuesAndExpressions::ProhibitLongChainsOfMethodCalls] # set_themes = core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # The number of chained calls to allow. # Minimum value 1. No maximum. # max_chain_length = 3 # Don't use values that don't explain themselves. [ValuesAndExpressions::ProhibitMagicNumbers] # set_themes = certrec core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = 10 # Individual and ranges of values to allow, and/or "all_integers". # allowed_values = 0 1 2 # Kind of literals to allow. # Valid values: Binary, Exp, Float, Hex, Octal. # allowed_types = Float # Should anything to the right of a "=>" be allowed?. # allow_to_the_right_of_a_fat_comma = 1 # Names of subroutines that create constants. # Values that are always included: Readonly, Readonly::Array, Readonly::Hash, Readonly::Scalar, const. # constant_creator_subroutines = # Don't mix numeric operators with string operands, or vice-versa. [ValuesAndExpressions::ProhibitMismatchedOperators] # set_themes = bugs certrule core # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write ` !$foo && $bar || $baz ' instead of ` not $foo && $bar or $baz'. [ValuesAndExpressions::ProhibitMixedBooleanOperators] # set_themes = bugs certrec core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Use `q{}' or `qq{}' instead of quotes for awkward-looking strings. [ValuesAndExpressions::ProhibitNoisyQuotes] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Don't use quotes (`'', `"', ``') as delimiters for the quote-like operators. [ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The operators to allow single-quotes as delimiters for. # Valid values: m, q, qq, qr, qw, qx, s, tr, y. # single_quote_allowed_operators = m s qr qx # The operators to allow double-quotes as delimiters for. # Valid values: m, q, qq, qr, qw, qx, s, tr, y. # double_quote_allowed_operators = # The operators to allow back-quotes (back-ticks) as delimiters for. # Valid values: m, q, qq, qr, qw, qx, s, tr, y. # back_quote_allowed_operators = # Don't write ` print <<'__END__' '. [ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator] # set_themes = core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Don't use strings like `v1.4' or `1.4.5' when including other modules. [ValuesAndExpressions::ProhibitVersionStrings] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Require $VERSION to be a constant rather than a computed value. [ValuesAndExpressions::RequireConstantVersion] # set_themes = core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Allow qv() and version->new() without a 'use version' on the same line. # allow_version_without_use_on_same_line = 0 # Warns that you might have used single quotes when you really wanted double-quotes. [ValuesAndExpressions::RequireInterpolationOfMetachars] # set_themes = core cosmetic pbp # add_themes = # severity = 1 # maximum_violations_per_document = no_limit # RCS keywords to ignore in potential interpolation. # rcs_keywords = # Write ` 141_234_397.0145 ' instead of ` 141234397.0145 '. [ValuesAndExpressions::RequireNumberSeparators] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # The minimum absolute value to require separators in. # Minimum value 10. No maximum. # min_value = 10_000 # Write ` print <<'THE_END' ' or ` print <<"THE_END" '. [ValuesAndExpressions::RequireQuotedHeredocTerminator] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write ` <<'THE_END'; ' instead of ` <<'theEnd'; '. [ValuesAndExpressions::RequireUpperCaseHeredocTerminator] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Do not write ` my $foo .= 'bar'; '. [Variables::ProhibitAugmentedAssignmentInDeclaration] # set_themes = bugs core # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Do not write ` my $foo = $bar if $baz; '. [Variables::ProhibitConditionalDeclarations] # set_themes = bugs core # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Use `my' instead of `local', except when you have to. [Variables::ProhibitLocalVars] # set_themes = core maintenance pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Avoid `$`', `$&', `$'' and their English equivalents. [Variables::ProhibitMatchVars] # set_themes = core pbp performance # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Eliminate globals declared with `our' or `use vars'. [Variables::ProhibitPackageVars] # set_themes = core maintenance pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The base set of packages to allow variables for. # packages = Data::Dumper File::Find FindBin Log::Log4perl # The set of packages to allow variables for, in addition to those given in "packages". # add_packages = # Use double colon (::) to separate package name components instead of single quotes ('). [Variables::ProhibitPerl4PackageNames] # set_themes = certrec core maintenance # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # Write `$EVAL_ERROR' instead of `$@'. [Variables::ProhibitPunctuationVars] # set_themes = core cosmetic pbp # add_themes = # severity = 2 # maximum_violations_per_document = no_limit # The additional variables to allow. # Values that are always included: $1, $2, $3, $4, $5, $6, $7, $8, $9, $], $_, @_, _. # allow = # Controls checking interpolated strings for punctuation variables. # Valid values: disable, simple, thorough. # string_mode = thorough # Do not reuse a variable name in a lexical scope [Variables::ProhibitReusedNames] # set_themes = bugs core # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # The variables to not consider as duplicates. # allow = $self $class # Don't ask for storage you don't need. [Variables::ProhibitUnusedVariables] # set_themes = certrec core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Prevent access to private vars in other packages. [Variables::ProtectPrivateVars] # set_themes = certrule core maintenance # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write `local $foo = $bar;' instead of just `local $foo;'. [Variables::RequireInitializationForLocalVars] # set_themes = bugs certrec core pbp # add_themes = # severity = 3 # maximum_violations_per_document = no_limit # Write `for my $element (@list) {...}' instead of `for $element (@list) {...}'. [Variables::RequireLexicalLoopIterators] # set_themes = bugs certrec core pbp # add_themes = # severity = 5 # maximum_violations_per_document = no_limit # Magic variables should be assigned as "local". [Variables::RequireLocalizedPunctuationVars] # set_themes = bugs certrec core pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit # Global variables to exclude from this policy. # Values that are always included: $ARG, $_, @_. # allow = # Negative array index should be used. [Variables::RequireNegativeIndices] # set_themes = core maintenance pbp # add_themes = # severity = 4 # maximum_violations_per_document = no_limit time_alert.t100644000765000024 32713534515620 16174 0ustar00jonasbnstaff000000000000Test-Timer-2.11/tuse strict; use warnings; use Test::More; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); use_ok('Test::Timer'); time_nok( sub { _sleep(10); }, 1, 'Failing test' ); done_testing(); _benchmark.t100644000765000024 65413534515620 16143 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t use strict; use Test::Fatal; # like use Test::More; use Test::Timer; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); $Test::Timer::alarm = 2; like( exception { Test::Timer::_benchmark( sub { _sleep(20); }, 1 ); }, qr/\d+/, 'Caught timeout exception' ); ok( Test::Timer::_benchmark( sub { _sleep(1); } ) ); ok( Test::Timer::_benchmark( sub { _sleep(2); }, 1 ) ); done_testing(); 00-compile.t100644000765000024 236313534515620 15736 0ustar00jonasbnstaff000000000000Test-Timer-2.11/tuse 5.006; use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058 use Test::More; plan tests => 2; my @module_files = ( 'Test/Timer.pm', 'Test/Timer/TimeoutException.pm' ); # no fake home requested my @switches = ( -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 my $stderr = IO::Handle->new; diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} } $^X, @switches, '-e', "require q[$lib]")) if $ENV{PERL_COMPILE_TEST_DEBUG}; my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]"); binmode $stderr, ':crlf' if $^O eq 'MSWin32'; my @_warnings = <$stderr>; waitpid($pid, 0); is($?, 0, "$lib loaded ok"); shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ and not eval { +require blib; blib->VERSION('1.01') }; if (@_warnings) { warn @_warnings; push @warnings, @_warnings; } } # no warning checks; test-tester.t100644000765000024 601013534515620 16345 0ustar00jonasbnstaff000000000000Test-Timer-2.11/tuse strict; use warnings; use Test::Tester; use Test::More; use Test::Timer; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); $Test::Timer::alarm = 5; check_test( sub { time_ok( sub { _sleep(1); }, 2, 'time_ok, passing test' ); }, { ok => 1, name => 'time_ok, passing test', depth => 2, diag => '' }, 'Succeeding test of time_ok' ); check_test( sub { time_ok( sub { _sleep(2); }, 1, 'time_ok, failing test' ); }, { ok => 0, name => 'time_ok, failing test', depth => 2, diag => qr/Test ran \d+ seconds and exceeded specified threshold of 1 seconds/ }, 'Failing test of time_ok' ); check_test( sub { time_nok( sub { _sleep(1); }, 3, 'time_nok, failing test' ); }, { ok => 0, name => 'time_nok, failing test', depth => 1, diag => qr/Test ran \d+ seconds and did not exceed specified threshold of 3 seconds/ }, 'Failing test of time_nok' ); check_test( sub { time_nok( sub { _sleep(3); }, 1, 'time_nok, passing test' ); }, { ok => 1, name => 'time_nok, passing test', depth => 1, diag => '' }, 'Passing test of time_nok' ); check_test( sub { time_between( sub { _sleep(1); }, 0, 3, 'time_between, passing test' ); }, { ok => 1, name => 'time_between, passing test', depth => 1, diag => '' }, 'Passing test of time_between' ); check_test( sub { time_between( sub { _sleep(3); }, 1, 2, 'time_between, failing test' ); }, { ok => 0, name => 'time_between, failing test', depth => 1, diag => qr/Test ran \d+ seconds and did not execute within specified interval 1 - 2 seconds/ }, 'Failing test of time_between' ); check_test( sub { time_atmost( sub { _sleep(1); }, 2, 'time_atmost, passing test' ); }, { ok => 1, name => 'time_atmost, passing test', depth => 1, diag => '' }, 'Succeeding test of time_atmost' ); check_test( sub { time_atmost( sub { _sleep(2); }, 1, 'time_atmost, failing test' ); }, { ok => 0, name => 'time_atmost, failing test', depth => 1, diag => qr/Test ran \d+ seconds and exceeded specified threshold of 1 seconds/ }, 'Failing test of time_atmost' ); check_test( sub { time_atleast( sub { _sleep(1); }, 3, 'time_atleast, failing test' ); }, { ok => 0, name => 'time_atleast, failing test', depth => 1, diag => qr/Test ran \d+ seconds and did not exceed specified threshold of 3 seconds/ }, 'Failing test of time_atleast' ); check_test( sub { time_atleast( sub { _sleep(2); }, 1, 'time_atleast, passing test' ); }, { ok => 1, name => 'time_atleast, passing test', depth => 1, diag => '' }, 'Passing test of time_atleast' ); check_test( sub { time_between( sub { _sleep(10); }, 1, 3, 'time_between, long running test, should time out' ); }, { ok => 0, name => 'time_between, long running test, should time out', depth => 1, diag => qr/Execution ran \d+ seconds and did not execute within specified interval 1 - 3 seconds/ }, 'failing long running test of time_between with timeout' ); done_testing(); cpanfile.snapshot100644000765000024 16016713534515620 17052 0ustar00jonasbnstaff000000000000Test-Timer-2.11# carton snapshot format: version 1.0 DISTRIBUTIONS Algorithm-Diff-1.1903 pathname: T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz provides: Algorithm::Diff 1.1903 Algorithm::Diff::_impl 1.1903 requirements: ExtUtils::MakeMaker 0 Archive-Any-Lite-0.11 pathname: I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz provides: Archive::Any::Lite 0.11 Archive::Any::Lite::Tar 0.11 Archive::Any::Lite::Zip 0.11 requirements: Archive::Tar 1.76 Archive::Zip 0 ExtUtils::MakeMaker 0 ExtUtils::MakeMaker::CPANfile 0.08 File::Spec 0 File::Temp 0.19 IO::Uncompress::Bunzip2 0 IO::Zlib 0 Archive-Zip-1.59 pathname: P/PH/PHRED/Archive-Zip-1.59.tar.gz provides: Archive::Zip 1.59 Archive::Zip::Archive 1.59 Archive::Zip::BufferedFileHandle 1.59 Archive::Zip::DirectoryMember 1.59 Archive::Zip::FileMember 1.59 Archive::Zip::Member 1.59 Archive::Zip::MemberRead 1.59 Archive::Zip::MockFileHandle 1.59 Archive::Zip::NewFileMember 1.59 Archive::Zip::StringMember 1.59 Archive::Zip::Tree 1.59 Archive::Zip::ZipFileMember 1.59 requirements: Compress::Raw::Zlib 2.017 ExtUtils::MakeMaker 0 File::Basename 0 File::Copy 0 File::Find 0 File::Path 0 File::Spec 0.80 File::Temp 0 IO::File 0 IO::Handle 0 IO::Seekable 0 Time::Local 0 perl 5.006 Array-Diff-0.07 pathname: T/TY/TYPESTER/Array-Diff-0.07.tar.gz provides: Array::Diff 0.07 requirements: Algorithm::Diff 1.19 Class::Accessor::Fast 0 ExtUtils::MakeMaker 6.42 Filter::Util::Call 0 Test::More 0 B-Keywords-1.15 pathname: R/RU/RURBAN/B-Keywords-1.15.tar.gz provides: B::Keywords 1.15 requirements: B 0 ExtUtils::MakeMaker 0 CPAN-Changes-0.400002 pathname: H/HA/HAARG/CPAN-Changes-0.400002.tar.gz provides: CPAN::Changes 0.400002 CPAN::Changes::Group undef CPAN::Changes::Release undef Test::CPAN::Changes 0.400002 requirements: ExtUtils::MakeMaker 0 Text::Wrap 0.003 version 0.9906 CPAN-DistnameInfo-0.12 pathname: G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz provides: CPAN::DistnameInfo 0.12 requirements: ExtUtils::MakeMaker 0 Test::More 0 Class-Accessor-0.34 pathname: K/KA/KASEI/Class-Accessor-0.34.tar.gz provides: Class::Accessor 0.34 Class::Accessor::Fast 0.34 Class::Accessor::Faster 0.34 requirements: ExtUtils::MakeMaker 0 base 1.01 Class-Data-Inheritable-0.08 pathname: T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz provides: Class::Data::Inheritable 0.08 requirements: ExtUtils::MakeMaker 0 Class-Inspector-1.32 pathname: P/PL/PLICEASE/Class-Inspector-1.32.tar.gz provides: Class::Inspector 1.32 Class::Inspector::Functions 1.32 requirements: ExtUtils::MakeMaker 0 File::Spec 0.80 perl 5.006 Class-Tiny-1.006 pathname: D/DA/DAGOLDEN/Class-Tiny-1.006.tar.gz provides: Class::Tiny 1.006 Class::Tiny::Object 1.006 requirements: Carp 0 ExtUtils::MakeMaker 6.17 perl 5.006 strict 0 warnings 0 Class-XSAccessor-1.19 pathname: S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz provides: Class::XSAccessor 1.19 Class::XSAccessor::Array 1.19 requirements: ExtUtils::MakeMaker 0 Test::More 0 Time::HiRes 0 XSLoader 0 perl 5.008 Clone-0.39 pathname: G/GA/GARU/Clone-0.39.tar.gz provides: Clone 0.39 requirements: ExtUtils::MakeMaker 0 Test::More 0 Config-Tiny-2.23 pathname: R/RS/RSAVAGE/Config-Tiny-2.23.tgz provides: Config::Tiny 2.23 requirements: ExtUtils::MakeMaker 0 File::Spec 3.3 File::Temp 0.22 Test::More 0.47 UNIVERSAL 0 perl v5.8.1 strict 0 utf8 0 Cpanel-JSON-XS-3.0239 pathname: R/RU/RURBAN/Cpanel-JSON-XS-3.0239.tar.gz provides: Cpanel::JSON::XS 3.0239 requirements: ExtUtils::MakeMaker 0 Pod::Text 2.08 Data-OptList-0.110 pathname: R/RJ/RJBS/Data-OptList-0.110.tar.gz provides: Data::OptList 0.110 requirements: ExtUtils::MakeMaker 0 List::Util 0 Params::Util 0 Sub::Install 0.921 strict 0 warnings 0 Data-Section-0.200007 pathname: R/RJ/RJBS/Data-Section-0.200007.tar.gz provides: Data::Section 0.200007 requirements: Encode 0 ExtUtils::MakeMaker 0 MRO::Compat 0.09 Sub::Exporter 0.979 strict 0 warnings 0 Devel-StackTrace-2.02 pathname: D/DR/DROLSKY/Devel-StackTrace-2.02.tar.gz provides: Devel::StackTrace 2.02 Devel::StackTrace::Frame 2.02 requirements: ExtUtils::MakeMaker 0 File::Spec 0 Scalar::Util 0 overload 0 perl 5.006 strict 0 warnings 0 Devel-Symdump-2.18 pathname: A/AN/ANDK/Devel-Symdump-2.18.tar.gz provides: Devel::Symdump 2.18 Devel::Symdump::Export undef requirements: Compress::Zlib 0 ExtUtils::MakeMaker 0 Test::More 0 perl 5.004 Dist-Zilla-Plugin-VersionFromMainModule-0.03 pathname: D/DR/DROLSKY/Dist-Zilla-Plugin-VersionFromMainModule-0.03.tar.gz provides: Dist::Zilla::Plugin::VersionFromMainModule 0.03 requirements: Dist::Zilla::Role::VersionProvider 0 ExtUtils::MakeMaker 0 Module::Metadata 1.000005 Moose 0 namespace::autoclean 0 strict 0 warnings 0 Email-Address-1.908 pathname: R/RJ/RJBS/Email-Address-1.908.tar.gz provides: Email::Address 1.908 requirements: ExtUtils::MakeMaker 0 overload 0 strict 0 warnings 0 Error-0.17025 pathname: S/SH/SHLOMIF/Error-0.17025.tar.gz provides: Error 0.17025 Error::Simple 0.17025 Error::WarnDie undef Error::subs undef requirements: Module::Build 0.280801 Scalar::Util 0 perl v5.6.0 strict 0 warnings 0 Exception-Class-1.43 pathname: D/DR/DROLSKY/Exception-Class-1.43.tar.gz provides: Exception::Class 1.43 Exception::Class::Base 1.43 requirements: Class::Data::Inheritable 0.02 Devel::StackTrace 2.00 ExtUtils::MakeMaker 0 Scalar::Util 0 base 0 overload 0 perl 5.008001 strict 0 warnings 0 Exporter-Tiny-1.000000 pathname: T/TO/TOBYINK/Exporter-Tiny-1.000000.tar.gz provides: Exporter::Shiny 1.000000 Exporter::Tiny 1.000000 requirements: ExtUtils::MakeMaker 6.17 perl 5.006001 ExtUtils-Config-0.008 pathname: L/LE/LEONT/ExtUtils-Config-0.008.tar.gz provides: ExtUtils::Config 0.008 requirements: Data::Dumper 0 ExtUtils::MakeMaker 6.30 strict 0 warnings 0 ExtUtils-Helpers-0.026 pathname: L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz provides: ExtUtils::Helpers 0.026 ExtUtils::Helpers::Unix 0.026 ExtUtils::Helpers::VMS 0.026 ExtUtils::Helpers::Windows 0.026 requirements: Carp 0 Exporter 5.57 ExtUtils::MakeMaker 0 File::Basename 0 File::Copy 0 File::Spec::Functions 0 Text::ParseWords 3.24 perl 5.006 strict 0 warnings 0 ExtUtils-InstallPaths-0.011 pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.011.tar.gz provides: ExtUtils::InstallPaths 0.011 requirements: Carp 0 ExtUtils::Config 0.002 ExtUtils::MakeMaker 0 File::Spec 0 perl 5.006 strict 0 warnings 0 ExtUtils-MakeMaker-CPANfile-0.08 pathname: I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.08.tar.gz provides: ExtUtils::MakeMaker::CPANfile 0.08 requirements: CPAN::Meta::Converter 2.141170 Cwd 0 ExtUtils::MakeMaker 6.17 File::Path 0 Module::CPANfile 0 Test::More 0.88 version 0.76 File-Find-Object-v0.3.2 pathname: S/SH/SHLOMIF/File-Find-Object-v0.3.2.tar.gz provides: File::Find::Object v0.3.2 File::Find::Object::Base v0.3.2 File::Find::Object::DeepPath v0.3.2 File::Find::Object::PathComp v0.3.2 File::Find::Object::Result v0.3.2 File::Find::Object::TopPath v0.3.2 requirements: Carp 0 Class::XSAccessor 0 ExtUtils::MakeMaker 0 Fcntl 0 File::Spec 0 List::Util 0 Module::Build 0.28 integer 0 parent 0 perl 5.008 strict 0 warnings 0 File-HomeDir-1.002 pathname: R/RE/REHSACK/File-HomeDir-1.002.tar.gz provides: File::HomeDir 1.002 File::HomeDir::Darwin 1.002 File::HomeDir::Darwin::Carbon 1.002 File::HomeDir::Darwin::Cocoa 1.002 File::HomeDir::Driver 1.002 File::HomeDir::FreeDesktop 1.002 File::HomeDir::MacOS9 1.002 File::HomeDir::TIE 1.002 File::HomeDir::Test 1.002 File::HomeDir::Unix 1.002 File::HomeDir::Windows 1.002 requirements: Carp 0 Cwd 3 ExtUtils::MakeMaker 0 File::Basename 0 File::Path 2.01 File::Spec 3 File::Temp 0.19 File::Which 0.05 Mac::SystemDirectory 0.04 POSIX 0 perl 5.005003 File-Remove-1.57 pathname: S/SH/SHLOMIF/File-Remove-1.57.tar.gz provides: File::Remove 1.57 requirements: Cwd 3.29 ExtUtils::MakeMaker 0 File::Glob 0 File::Path 0 File::Spec 3.29 constant 0 perl 5.006 strict 0 vars 0 warnings 0 File-ShareDir-1.104 pathname: R/RE/REHSACK/File-ShareDir-1.104.tar.gz provides: File::ShareDir 1.104 requirements: Carp 0 Class::Inspector 1.12 ExtUtils::MakeMaker 0 File::ShareDir::Install 0.03 File::Spec 0.80 perl 5.008001 warnings 0 File-ShareDir-Install-0.11 pathname: E/ET/ETHER/File-ShareDir-Install-0.11.tar.gz provides: File::ShareDir::Install 0.11 requirements: Carp 0 Exporter 0 File::Spec 0 IO::Dir 0 Module::Build::Tiny 0.034 perl 5.008 strict 0 warnings 0 File-Which-1.22 pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz provides: File::Which 1.22 requirements: ExtUtils::MakeMaker 0 perl 5.006 Hook-LexWrap-0.26 pathname: E/ET/ETHER/Hook-LexWrap-0.26.tar.gz provides: Hook::LexWrap 0.26 requirements: Carp 0 ExtUtils::MakeMaker 0 overload 0 perl 5.006 strict 0 warnings 0 IO-Capture-0.05 pathname: R/RE/REYNOLDS/IO-Capture-0.05.tar.gz provides: IO::Capture 0.05 IO::Capture::Stderr undef IO::Capture::Stdout undef IO::Capture::Tie_STDx undef requirements: Carp 0 ExtUtils::MakeMaker 0 Test::More 0 IO-String-1.08 pathname: G/GA/GAAS/IO-String-1.08.tar.gz provides: IO::String 1.08 requirements: ExtUtils::MakeMaker 0 JSON-2.94 pathname: I/IS/ISHIGAKI/JSON-2.94.tar.gz provides: JSON 2.94 JSON::Backend::PP 2.94 requirements: ExtUtils::MakeMaker 0 Test::More 0 JSON-MaybeXS-1.003009 pathname: E/ET/ETHER/JSON-MaybeXS-1.003009.tar.gz provides: JSON::MaybeXS 1.003009 requirements: Carp 0 Cpanel::JSON::XS 2.3310 ExtUtils::CBuilder 0.27 ExtUtils::MakeMaker 0 File::Spec 0 File::Temp 0 JSON::PP 2.27300 Scalar::Util 0 perl 5.006 Lingua-EN-Inflect-1.902 pathname: D/DC/DCONWAY/Lingua-EN-Inflect-1.902.tar.gz provides: Lingua::EN::Inflect 1.902 requirements: ExtUtils::MakeMaker 0 Test::More 0 List-MoreUtils-0.425 pathname: R/RE/REHSACK/List-MoreUtils-0.425.tar.gz provides: List::MoreUtils 0.425 List::MoreUtils::PP 0.425 requirements: Exporter::Tiny 0.038 ExtUtils::MakeMaker 0 List::MoreUtils::XS 0.423 List-MoreUtils-XS-0.426 pathname: R/RE/REHSACK/List-MoreUtils-XS-0.426.tar.gz provides: List::MoreUtils::XS 0.426 requirements: Carp 0 ExtUtils::MakeMaker 0 File::Basename 0 File::Copy 0 File::Path 0 File::Spec 0 IPC::Cmd 0 XSLoader 0.22 base 0 MCE-1.831 pathname: M/MA/MARIOROY/MCE-1.831.tar.gz provides: MCE 1.831 MCE::Candy 1.831 MCE::Core::Input::Generator 1.831 MCE::Core::Input::Handle 1.831 MCE::Core::Input::Iterator 1.831 MCE::Core::Input::Request 1.831 MCE::Core::Input::Sequence 1.831 MCE::Core::Manager 1.831 MCE::Core::Validation 1.831 MCE::Core::Worker 1.831 MCE::Flow 1.831 MCE::Grep 1.831 MCE::Loop 1.831 MCE::Map 1.831 MCE::Mutex 1.831 MCE::Mutex::Channel 1.831 MCE::Mutex::Flock 1.831 MCE::Queue 1.831 MCE::Relay 1.831 MCE::Signal 1.831 MCE::Step 1.831 MCE::Stream 1.831 MCE::Subs 1.831 MCE::Util 1.831 requirements: Carp 0 ExtUtils::MakeMaker 0 Fcntl 0 File::Path 0 Getopt::Long 0 IO::Handle 0 Scalar::Util 0 Socket 0 Storable 2.04 Symbol 0 Time::HiRes 0 base 0 bytes 0 constant 0 perl 5.008 strict 0 warnings 0 MRO-Compat-0.13 pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz provides: MRO::Compat 0.13 requirements: ExtUtils::MakeMaker 0 perl 5.006 Mac-SystemDirectory-0.10 pathname: E/ET/ETHER/Mac-SystemDirectory-0.10.tar.gz provides: Mac::SystemDirectory 0.10 requirements: Exporter 0 ExtUtils::MakeMaker 0 XSLoader 0 perl 5.006 strict 0 warnings 0 Mixin-Linewise-0.108 pathname: R/RJ/RJBS/Mixin-Linewise-0.108.tar.gz provides: Mixin::Linewise 0.108 Mixin::Linewise::Readers 0.108 Mixin::Linewise::Writers 0.108 requirements: Carp 0 ExtUtils::MakeMaker 0 IO::File 0 PerlIO::utf8_strict 0 Sub::Exporter 0 perl 5.008001 strict 0 warnings 0 Module-Build-0.4224 pathname: L/LE/LEONT/Module-Build-0.4224.tar.gz provides: Module::Build 0.4224 Module::Build::Base 0.4224 Module::Build::Compat 0.4224 Module::Build::Config 0.4224 Module::Build::Cookbook 0.4224 Module::Build::Dumper 0.4224 Module::Build::Notes 0.4224 Module::Build::PPMMaker 0.4224 Module::Build::Platform::Default 0.4224 Module::Build::Platform::MacOS 0.4224 Module::Build::Platform::Unix 0.4224 Module::Build::Platform::VMS 0.4224 Module::Build::Platform::VOS 0.4224 Module::Build::Platform::Windows 0.4224 Module::Build::Platform::aix 0.4224 Module::Build::Platform::cygwin 0.4224 Module::Build::Platform::darwin 0.4224 Module::Build::Platform::os2 0.4224 Module::Build::PodParser 0.4224 requirements: CPAN::Meta 2.142060 CPAN::Meta::YAML 0.003 Cwd 0 Data::Dumper 0 ExtUtils::CBuilder 0.27 ExtUtils::Install 0 ExtUtils::Manifest 0 ExtUtils::Mkbootstrap 0 ExtUtils::ParseXS 2.21 File::Basename 0 File::Compare 0 File::Copy 0 File::Find 0 File::Path 0 File::Spec 0.82 File::Temp 0.15 Getopt::Long 0 Module::Metadata 1.000002 Parse::CPAN::Meta 1.4401 Perl::OSType 1 Pod::Man 2.17 TAP::Harness 3.29 Test::More 0.49 Text::Abbrev 0 Text::ParseWords 0 perl 5.006001 version 0.87 Module-Build-Tiny-0.039 pathname: L/LE/LEONT/Module-Build-Tiny-0.039.tar.gz provides: Module::Build::Tiny 0.039 requirements: CPAN::Meta 0 DynaLoader 0 Exporter 5.57 ExtUtils::CBuilder 0 ExtUtils::Config 0.003 ExtUtils::Helpers 0.020 ExtUtils::Install 0 ExtUtils::InstallPaths 0.002 ExtUtils::ParseXS 0 File::Basename 0 File::Find 0 File::Path 0 File::Spec::Functions 0 Getopt::Long 2.36 JSON::PP 2 Pod::Man 0 TAP::Harness::Env 0 perl 5.006 strict 0 warnings 0 Module-CPANTS-Analyse-0.96 pathname: I/IS/ISHIGAKI/Module-CPANTS-Analyse-0.96.tar.gz provides: Module::CPANTS::Analyse 0.96 Module::CPANTS::Kwalitee 0.96 Module::CPANTS::Kwalitee::BrokenInstaller 0.96 Module::CPANTS::Kwalitee::CpantsErrors 0.96 Module::CPANTS::Kwalitee::Distname 0.96 Module::CPANTS::Kwalitee::Distros 0.96 Module::CPANTS::Kwalitee::Files 0.96 Module::CPANTS::Kwalitee::FindModules 0.96 Module::CPANTS::Kwalitee::License 0.96 Module::CPANTS::Kwalitee::Manifest 0.96 Module::CPANTS::Kwalitee::MetaYML 0.96 Module::CPANTS::Kwalitee::NeedsCompiler 0.96 Module::CPANTS::Kwalitee::Pod 0.96 Module::CPANTS::Kwalitee::Prereq 0.96 Module::CPANTS::Kwalitee::Repackageable 0.96 Module::CPANTS::Kwalitee::Signature 0.96 Module::CPANTS::Kwalitee::Uses 0.96 Module::CPANTS::Kwalitee::Version 0.96 requirements: Archive::Any::Lite 0.06 Archive::Tar 1.48 Array::Diff 0.04 CPAN::DistnameInfo 0.06 CPAN::Meta::Validator 2.133380 CPAN::Meta::YAML 0.008 Class::Accessor 0.19 ExtUtils::MakeMaker 0 ExtUtils::MakeMaker::CPANfile 0.08 File::Find::Object v0.2.1 IO::Capture 0.05 JSON::MaybeXS 0 Module::ExtractUse 0.33 Module::Pluggable 2.96 Set::Scalar 0 Software::License 0.103008 Software::License::CC_BY_SA_3_0 0 Text::Balanced 0 version 0.73 Module-CPANfile-1.1002 pathname: M/MI/MIYAGAWA/Module-CPANfile-1.1002.tar.gz provides: Module::CPANfile 1.1002 Module::CPANfile::Environment undef Module::CPANfile::Prereq undef Module::CPANfile::Prereqs undef Module::CPANfile::Requirement undef requirements: CPAN::Meta 2.12091 CPAN::Meta::Prereqs 2.12091 ExtUtils::MakeMaker 0 JSON::PP 2.27300 parent 0 Module-ExtractUse-0.341 pathname: D/DO/DOMM/Module-ExtractUse-0.341.tar.gz provides: Module::ExtractUse 0.341 Module::ExtractUse::Grammar undef Parse::RecDescent::Module::ExtractUse::Grammar undef requirements: Carp 0 Module::Build 0.28 Parse::RecDescent 1.967009 Pod::Strip 0 Test::Deep 0 Test::More 0 Test::NoWarnings 0 perl 5.008 strict 0 vars 0 warnings 0 Module-Pluggable-5.2 pathname: S/SI/SIMONW/Module-Pluggable-5.2.tar.gz provides: Devel::InnerPackage 0.4 Module::Pluggable 5.2 Module::Pluggable::Object 5.2 requirements: Exporter 5.57 ExtUtils::MakeMaker 0 File::Basename 0 File::Find 0 File::Spec 3.00 File::Spec::Functions 0 if 0 perl 5.00503 strict 0 PPI-1.236 pathname: M/MI/MITHALDU/PPI-1.236.tar.gz provides: PPI 1.236 PPI::Cache 1.236 PPI::Document 1.236 PPI::Document::File 1.236 PPI::Document::Fragment 1.236 PPI::Document::Normalized 1.236 PPI::Dumper 1.236 PPI::Element 1.236 PPI::Exception 1.236 PPI::Exception::ParserRejection 1.236 PPI::Find 1.236 PPI::Lexer 1.236 PPI::Node 1.236 PPI::Normal 1.236 PPI::Normal::Standard 1.236 PPI::Statement 1.236 PPI::Statement::Break 1.236 PPI::Statement::Compound 1.236 PPI::Statement::Data 1.236 PPI::Statement::End 1.236 PPI::Statement::Expression 1.236 PPI::Statement::Given 1.236 PPI::Statement::Include 1.236 PPI::Statement::Include::Perl6 1.236 PPI::Statement::Null 1.236 PPI::Statement::Package 1.236 PPI::Statement::Scheduled 1.236 PPI::Statement::Sub 1.236 PPI::Statement::Unknown 1.236 PPI::Statement::UnmatchedBrace 1.236 PPI::Statement::Variable 1.236 PPI::Statement::When 1.236 PPI::Structure 1.236 PPI::Structure::Block 1.236 PPI::Structure::Condition 1.236 PPI::Structure::Constructor 1.236 PPI::Structure::For 1.236 PPI::Structure::Given 1.236 PPI::Structure::List 1.236 PPI::Structure::Subscript 1.236 PPI::Structure::Unknown 1.236 PPI::Structure::When 1.236 PPI::Token 1.236 PPI::Token::ArrayIndex 1.236 PPI::Token::Attribute 1.236 PPI::Token::BOM 1.236 PPI::Token::Cast 1.236 PPI::Token::Comment 1.236 PPI::Token::DashedWord 1.236 PPI::Token::Data 1.236 PPI::Token::End 1.236 PPI::Token::HereDoc 1.236 PPI::Token::Label 1.236 PPI::Token::Magic 1.236 PPI::Token::Number 1.236 PPI::Token::Number::Binary 1.236 PPI::Token::Number::Exp 1.236 PPI::Token::Number::Float 1.236 PPI::Token::Number::Hex 1.236 PPI::Token::Number::Octal 1.236 PPI::Token::Number::Version 1.236 PPI::Token::Operator 1.236 PPI::Token::Pod 1.236 PPI::Token::Prototype 1.236 PPI::Token::Quote 1.236 PPI::Token::Quote::Double 1.236 PPI::Token::Quote::Interpolate 1.236 PPI::Token::Quote::Literal 1.236 PPI::Token::Quote::Single 1.236 PPI::Token::QuoteLike 1.236 PPI::Token::QuoteLike::Backtick 1.236 PPI::Token::QuoteLike::Command 1.236 PPI::Token::QuoteLike::Readline 1.236 PPI::Token::QuoteLike::Regexp 1.236 PPI::Token::QuoteLike::Words 1.236 PPI::Token::Regexp 1.236 PPI::Token::Regexp::Match 1.236 PPI::Token::Regexp::Substitute 1.236 PPI::Token::Regexp::Transliterate 1.236 PPI::Token::Separator 1.236 PPI::Token::Structure 1.236 PPI::Token::Symbol 1.236 PPI::Token::Unknown 1.236 PPI::Token::Whitespace 1.236 PPI::Token::Word 1.236 PPI::Token::_QuoteEngine 1.236 PPI::Token::_QuoteEngine::Full 1.236 PPI::Token::_QuoteEngine::Simple 1.236 PPI::Tokenizer 1.236 PPI::Transform 1.236 PPI::Transform::UpdateCopyright 1.236 PPI::Util 1.236 PPI::XSAccessor 1.236 requirements: Class::Inspector 1.22 Clone 0.30 Digest::MD5 2.35 ExtUtils::MakeMaker 6.59 File::Remove 1.42 File::Spec 0.84 IO::String 1.07 List::MoreUtils 0.16 List::Util 1.33 Params::Util 1.00 Storable 2.17 Task::Weaken 0 Test::Deep 0 Test::More 0.86 Test::Object 0.07 Test::SubCalls 1.07 perl 5.006 PPIx-Regexp-0.052 pathname: W/WY/WYANT/PPIx-Regexp-0.052.tar.gz provides: PPIx::Regexp 0.052 PPIx::Regexp::Constant 0.052 PPIx::Regexp::Dumper 0.052 PPIx::Regexp::Element 0.052 PPIx::Regexp::Lexer 0.052 PPIx::Regexp::Node 0.052 PPIx::Regexp::Node::Range 0.052 PPIx::Regexp::Node::Unknown 0.052 PPIx::Regexp::StringTokenizer 0.052 PPIx::Regexp::Structure 0.052 PPIx::Regexp::Structure::Assertion 0.052 PPIx::Regexp::Structure::BranchReset 0.052 PPIx::Regexp::Structure::Capture 0.052 PPIx::Regexp::Structure::CharClass 0.052 PPIx::Regexp::Structure::Code 0.052 PPIx::Regexp::Structure::Main 0.052 PPIx::Regexp::Structure::Modifier 0.052 PPIx::Regexp::Structure::NamedCapture 0.052 PPIx::Regexp::Structure::Quantifier 0.052 PPIx::Regexp::Structure::RegexSet 0.052 PPIx::Regexp::Structure::Regexp 0.052 PPIx::Regexp::Structure::Replacement 0.052 PPIx::Regexp::Structure::Subexpression 0.052 PPIx::Regexp::Structure::Switch 0.052 PPIx::Regexp::Structure::Unknown 0.052 PPIx::Regexp::Support 0.052 PPIx::Regexp::Token 0.052 PPIx::Regexp::Token::Assertion 0.052 PPIx::Regexp::Token::Backreference 0.052 PPIx::Regexp::Token::Backtrack 0.052 PPIx::Regexp::Token::CharClass 0.052 PPIx::Regexp::Token::CharClass::POSIX 0.052 PPIx::Regexp::Token::CharClass::POSIX::Unknown 0.052 PPIx::Regexp::Token::CharClass::Simple 0.052 PPIx::Regexp::Token::Code 0.052 PPIx::Regexp::Token::Comment 0.052 PPIx::Regexp::Token::Condition 0.052 PPIx::Regexp::Token::Control 0.052 PPIx::Regexp::Token::Delimiter 0.052 PPIx::Regexp::Token::Greediness 0.052 PPIx::Regexp::Token::GroupType 0.052 PPIx::Regexp::Token::GroupType::Assertion 0.052 PPIx::Regexp::Token::GroupType::BranchReset 0.052 PPIx::Regexp::Token::GroupType::Code 0.052 PPIx::Regexp::Token::GroupType::Modifier 0.052 PPIx::Regexp::Token::GroupType::NamedCapture 0.052 PPIx::Regexp::Token::GroupType::Subexpression 0.052 PPIx::Regexp::Token::GroupType::Switch 0.052 PPIx::Regexp::Token::Interpolation 0.052 PPIx::Regexp::Token::Literal 0.052 PPIx::Regexp::Token::Modifier 0.052 PPIx::Regexp::Token::NoOp 0.052 PPIx::Regexp::Token::Operator 0.052 PPIx::Regexp::Token::Quantifier 0.052 PPIx::Regexp::Token::Recursion 0.052 PPIx::Regexp::Token::Reference 0.052 PPIx::Regexp::Token::Structure 0.052 PPIx::Regexp::Token::Unknown 0.052 PPIx::Regexp::Token::Unmatched 0.052 PPIx::Regexp::Token::Whitespace 0.052 PPIx::Regexp::Tokenizer 0.052 PPIx::Regexp::Util 0.052 requirements: Carp 0 Exporter 0 List::MoreUtils 0 List::Util 0 PPI::Document 1.117 Scalar::Util 0 Task::Weaken 0 Test::More 0.88 base 0 constant 0 perl 5.006 strict 0 warnings 0 PPIx-Utilities-1.001000 pathname: E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz provides: PPIx::Utilities 1.001000 PPIx::Utilities::Exception::Bug 1.001000 PPIx::Utilities::Node 1.001000 PPIx::Utilities::Statement 1.001000 requirements: Data::Dumper 0 Exception::Class 0 Exporter 0 PPI 1.208 PPI::Document 1.208 PPI::Document::Fragment 1.208 PPI::Dumper 1.208 Readonly 0 Scalar::Util 0 Task::Weaken 0 Test::Deep 0 Test::More 0 base 0 strict 0 warnings 0 Params-Util-1.07 pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz provides: Params::Util 1.07 requirements: ExtUtils::CBuilder 0.27 ExtUtils::MakeMaker 6.52 File::Spec 0.80 Scalar::Util 1.18 Test::More 0.42 perl 5.00503 Parse-RecDescent-1.967015 pathname: J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz provides: Parse::RecDescent 1.967015 Parse::RecDescent::Action 1.967015 Parse::RecDescent::ColCounter 1.967015 Parse::RecDescent::Directive 1.967015 Parse::RecDescent::Error 1.967015 Parse::RecDescent::Expectation 1.967015 Parse::RecDescent::InterpLit 1.967015 Parse::RecDescent::LineCounter 1.967015 Parse::RecDescent::Literal 1.967015 Parse::RecDescent::OffsetCounter 1.967015 Parse::RecDescent::Operator 1.967015 Parse::RecDescent::Production 1.967015 Parse::RecDescent::Repetition 1.967015 Parse::RecDescent::Result 1.967015 Parse::RecDescent::Rule 1.967015 Parse::RecDescent::Subrule 1.967015 Parse::RecDescent::Token 1.967015 Parse::RecDescent::UncondReject 1.967015 requirements: Test::More 0 Text::Balanced 1.95 Path-Tiny-0.104 pathname: D/DA/DAGOLDEN/Path-Tiny-0.104.tar.gz provides: Path::Tiny 0.104 Path::Tiny::Error 0.104 requirements: Carp 0 Cwd 0 Digest 1.03 Digest::SHA 5.45 Exporter 5.57 ExtUtils::MakeMaker 6.17 Fcntl 0 File::Copy 0 File::Glob 0 File::Path 2.07 File::Spec 0.86 File::Temp 0.19 File::stat 0 constant 0 if 0 overload 0 perl 5.008001 strict 0 warnings 0 Perl-Critic-1.130 pathname: P/PE/PETDANCE/Perl-Critic-1.130.tar.gz provides: Perl::Critic 1.130 Perl::Critic::Annotation 1.130 Perl::Critic::Command 1.130 Perl::Critic::Config 1.130 Perl::Critic::Document 1.130 Perl::Critic::Exception 1.130 Perl::Critic::Exception::AggregateConfiguration 1.130 Perl::Critic::Exception::Configuration 1.130 Perl::Critic::Exception::Configuration::Generic 1.130 Perl::Critic::Exception::Configuration::NonExistentPolicy 1.130 Perl::Critic::Exception::Configuration::Option 1.130 Perl::Critic::Exception::Configuration::Option::Global 1.130 Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter 1.130 Perl::Critic::Exception::Configuration::Option::Global::ParameterValue 1.130 Perl::Critic::Exception::Configuration::Option::Policy 1.130 Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter 1.130 Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue 1.130 Perl::Critic::Exception::Fatal 1.130 Perl::Critic::Exception::Fatal::Generic 1.130 Perl::Critic::Exception::Fatal::Internal 1.130 Perl::Critic::Exception::Fatal::PolicyDefinition 1.130 Perl::Critic::Exception::IO 1.130 Perl::Critic::Exception::Parse 1.130 Perl::Critic::OptionsProcessor 1.130 Perl::Critic::Policy 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitUselessTopic 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock 1.130 Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading 1.130 Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA 1.130 Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless 1.130 Perl::Critic::Policy::CodeLayout::ProhibitHardTabs 1.130 Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins 1.130 Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists 1.130 Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace 1.130 Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines 1.130 Perl::Critic::Policy::CodeLayout::RequireTidyCode 1.130 Perl::Critic::Policy::CodeLayout::RequireTrailingCommas 1.130 Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops 1.130 Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse 1.130 Perl::Critic::Policy::ControlStructures::ProhibitDeepNests 1.130 Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames 1.130 Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions 1.130 Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions 1.130 Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls 1.130 Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks 1.130 Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode 1.130 Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks 1.130 Perl::Critic::Policy::ControlStructures::ProhibitYadaOperator 1.130 Perl::Critic::Policy::Documentation::PodSpelling 1.130 Perl::Critic::Policy::Documentation::RequirePackageMatchesPodName 1.130 Perl::Critic::Policy::Documentation::RequirePodAtEnd 1.130 Perl::Critic::Policy::Documentation::RequirePodLinksIncludeText 1.130 Perl::Critic::Policy::Documentation::RequirePodSections 1.130 Perl::Critic::Policy::ErrorHandling::RequireCarping 1.130 Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval 1.130 Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators 1.130 Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles 1.130 Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin 1.130 Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest 1.130 Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline 1.130 Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect 1.130 Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop 1.130 Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen 1.130 Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint 1.130 Perl::Critic::Policy::InputOutput::RequireBriefOpen 1.130 Perl::Critic::Policy::InputOutput::RequireCheckedClose 1.130 Perl::Critic::Policy::InputOutput::RequireCheckedOpen 1.130 Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls 1.130 Perl::Critic::Policy::InputOutput::RequireEncodingWithUTF8Layer 1.130 Perl::Critic::Policy::Miscellanea::ProhibitFormats 1.130 Perl::Critic::Policy::Miscellanea::ProhibitTies 1.130 Perl::Critic::Policy::Miscellanea::ProhibitUnrestrictedNoCritic 1.130 Perl::Critic::Policy::Miscellanea::ProhibitUselessNoCritic 1.130 Perl::Critic::Policy::Modules::ProhibitAutomaticExportation 1.130 Perl::Critic::Policy::Modules::ProhibitConditionalUseStatements 1.130 Perl::Critic::Policy::Modules::ProhibitEvilModules 1.130 Perl::Critic::Policy::Modules::ProhibitExcessMainComplexity 1.130 Perl::Critic::Policy::Modules::ProhibitMultiplePackages 1.130 Perl::Critic::Policy::Modules::RequireBarewordIncludes 1.130 Perl::Critic::Policy::Modules::RequireEndWithOne 1.130 Perl::Critic::Policy::Modules::RequireExplicitPackage 1.130 Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage 1.130 Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish 1.130 Perl::Critic::Policy::Modules::RequireVersionVar 1.130 Perl::Critic::Policy::NamingConventions::Capitalization 1.130 Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames 1.130 Perl::Critic::Policy::Objects::ProhibitIndirectSyntax 1.130 Perl::Critic::Policy::References::ProhibitDoubleSigils 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitComplexRegexes 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitEscapedMetacharacters 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitSingleCharAlternation 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitUnusedCapture 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitUnusualDelimiters 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic 1.130 Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline 1.130 Perl::Critic::Policy::RegularExpressions::RequireDotMatchAnything 1.130 Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting 1.130 Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching 1.130 Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils 1.130 Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms 1.130 Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity 1.130 Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef 1.130 Perl::Critic::Policy::Subroutines::ProhibitManyArgs 1.130 Perl::Critic::Policy::Subroutines::ProhibitNestedSubs 1.130 Perl::Critic::Policy::Subroutines::ProhibitReturnSort 1.130 Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes 1.130 Perl::Critic::Policy::Subroutines::ProhibitUnusedPrivateSubroutines 1.130 Perl::Critic::Policy::Subroutines::ProtectPrivateSubs 1.130 Perl::Critic::Policy::Subroutines::RequireArgUnpacking 1.130 Perl::Critic::Policy::Subroutines::RequireFinalReturn 1.130 Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict 1.130 Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings 1.130 Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride 1.130 Perl::Critic::Policy::TestingAndDebugging::RequireTestLabels 1.130 Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict 1.130 Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitCommaSeparatedStatements 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitComplexVersion 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitImplicitNewlines 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitLongChainsOfMethodCalls 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireConstantVersion 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator 1.130 Perl::Critic::Policy::Variables::ProhibitAugmentedAssignmentInDeclaration 1.130 Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations 1.130 Perl::Critic::Policy::Variables::ProhibitEvilVariables 1.130 Perl::Critic::Policy::Variables::ProhibitLocalVars 1.130 Perl::Critic::Policy::Variables::ProhibitMatchVars 1.130 Perl::Critic::Policy::Variables::ProhibitPackageVars 1.130 Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames 1.130 Perl::Critic::Policy::Variables::ProhibitPunctuationVars 1.130 Perl::Critic::Policy::Variables::ProhibitReusedNames 1.130 Perl::Critic::Policy::Variables::ProhibitUnusedVariables 1.130 Perl::Critic::Policy::Variables::ProtectPrivateVars 1.130 Perl::Critic::Policy::Variables::RequireInitializationForLocalVars 1.130 Perl::Critic::Policy::Variables::RequireLexicalLoopIterators 1.130 Perl::Critic::Policy::Variables::RequireLocalizedPunctuationVars 1.130 Perl::Critic::Policy::Variables::RequireNegativeIndices 1.130 Perl::Critic::PolicyConfig 1.130 Perl::Critic::PolicyFactory 1.130 Perl::Critic::PolicyListing 1.130 Perl::Critic::PolicyParameter 1.130 Perl::Critic::PolicyParameter::Behavior 1.130 Perl::Critic::PolicyParameter::Behavior::Boolean 1.130 Perl::Critic::PolicyParameter::Behavior::Enumeration 1.130 Perl::Critic::PolicyParameter::Behavior::Integer 1.130 Perl::Critic::PolicyParameter::Behavior::String 1.130 Perl::Critic::PolicyParameter::Behavior::StringList 1.130 Perl::Critic::ProfilePrototype 1.130 Perl::Critic::Statistics 1.130 Perl::Critic::TestUtils 1.130 Perl::Critic::Theme 1.130 Perl::Critic::ThemeListing 1.130 Perl::Critic::UserProfile 1.130 Perl::Critic::Utils 1.130 Perl::Critic::Utils::Constants 1.130 Perl::Critic::Utils::DataConversion 1.130 Perl::Critic::Utils::McCabe 1.130 Perl::Critic::Utils::POD 1.130 Perl::Critic::Utils::POD::ParseInteriorSequence 1.130 Perl::Critic::Utils::PPI 1.130 Perl::Critic::Utils::Perl 1.130 Perl::Critic::Violation 1.130 Test::Perl::Critic::Policy 1.130 requirements: B::Keywords 1.05 Carp 0 Config::Tiny 2 Email::Address 1.889 English 0 Exception::Class 1.23 Exporter 5.63 File::Basename 0 File::Find 0 File::HomeDir 0 File::Path 0 File::Spec 0 File::Spec::Unix 0 File::Temp 0 File::Which 0 Getopt::Long 0 IO::String 0 IPC::Open2 1 List::MoreUtils 0.19 List::Util 0 Module::Build 0.4024 Module::Pluggable 3.1 PPI 1.224 PPI::Document 1.224 PPI::Document::File 1.224 PPI::Node 1.224 PPI::Token::Quote::Single 1.224 PPI::Token::Whitespace 1.224 PPIx::Regexp 0.027 PPIx::Utilities::Node 1.001 PPIx::Utilities::Statement 1.001 Perl::Tidy 0 Pod::Parser 0 Pod::PlainText 0 Pod::Select 0 Pod::Spell 1 Pod::Usage 0 Readonly 2 Scalar::Util 0 String::Format 1.13 Task::Weaken 0 Term::ANSIColor 2.02 Test::Builder 0.92 Test::Deep 0 Test::More 0 Text::ParseWords 3 base 0 charnames 0 lib 0 overload 0 perl 5.006001 strict 0 version 0.77 warnings 0 Perl-Tidy-20170521 pathname: S/SH/SHANCOCK/Perl-Tidy-20170521.tar.gz provides: Perl::Tidy 20170521 Perl::Tidy::Debugger 20170521 Perl::Tidy::DevNull 20170521 Perl::Tidy::Diagnostics 20170521 Perl::Tidy::FileWriter 20170521 Perl::Tidy::Formatter 20170521 Perl::Tidy::HtmlWriter 20170521 Perl::Tidy::IOScalar 20170521 Perl::Tidy::IOScalarArray 20170521 Perl::Tidy::IndentationItem 20170521 Perl::Tidy::LineBuffer 20170521 Perl::Tidy::LineSink 20170521 Perl::Tidy::LineSource 20170521 Perl::Tidy::Logger 20170521 Perl::Tidy::Tokenizer 20170521 Perl::Tidy::VerticalAligner 20170521 Perl::Tidy::VerticalAligner::Alignment 20170521 Perl::Tidy::VerticalAligner::Line 20170521 requirements: ExtUtils::MakeMaker 0 PerlIO-utf8_strict-0.007 pathname: L/LE/LEONT/PerlIO-utf8_strict-0.007.tar.gz provides: PerlIO::utf8_strict 0.007 requirements: ExtUtils::MakeMaker 0 XSLoader 0 perl 5.008 strict 0 warnings 0 Pod-Coverage-0.23 pathname: R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz provides: Pod::Coverage 0.23 Pod::Coverage::CountParents undef Pod::Coverage::ExportOnly undef Pod::Coverage::Extractor 0.23 Pod::Coverage::Overloader undef requirements: Devel::Symdump 2.01 ExtUtils::MakeMaker 0 Pod::Find 0.21 Pod::Parser 1.13 Test::More 0 Pod-Coverage-TrustPod-0.100003 pathname: R/RJ/RJBS/Pod-Coverage-TrustPod-0.100003.tar.gz provides: Pod::Coverage::TrustPod 0.100003 requirements: ExtUtils::MakeMaker 6.30 Pod::Coverage::CountParents 0 Pod::Eventual::Simple 0 Pod::Find 0 base 0 strict 0 warnings 0 Pod-Eventual-0.094001 pathname: R/RJ/RJBS/Pod-Eventual-0.094001.tar.gz provides: Pod::Eventual 0.094001 Pod::Eventual::Simple 0.094001 requirements: Carp 0 ExtUtils::MakeMaker 6.30 Mixin::Linewise::Readers 0.102 strict 0 warnings 0 Pod-Spell-1.20 pathname: D/DO/DOLMEN/Pod-Spell-1.20.tar.gz provides: Pod::Spell 1.20 Pod::Wordlist 1.20 requirements: Carp 0 Class::Tiny 0 ExtUtils::MakeMaker 0 File::ShareDir 0 File::ShareDir::Install 0.06 Lingua::EN::Inflect 0 POSIX 0 Path::Tiny 0 Pod::Escapes 0 Pod::Parser 0 Text::Wrap 0 constant 0 locale 0 parent 0 perl 5.008 strict 0 warnings 0 Pod-Strip-1.02 pathname: D/DO/DOMM/Pod-Strip-1.02.tar.gz provides: Pod::Strip 1.02 requirements: Pod::Simple 3.00 Test::More 0 Readonly-2.05 pathname: S/SA/SANKO/Readonly-2.05.tar.gz provides: Readonly 2.05 Readonly::Array undef Readonly::Hash undef Readonly::Scalar undef requirements: Module::Build::Tiny 0.035 perl 5.005 Set-Scalar-1.29 pathname: D/DA/DAVIDO/Set-Scalar-1.29.tar.gz provides: Set::Scalar 1.29 Set::Scalar::Base 1.29 Set::Scalar::Null 1.29 Set::Scalar::Real 1.29 Set::Scalar::Universe 1.29 Set::Scalar::Valued 1.29 Set::Scalar::ValuedUniverse 1.29 Set::Scalar::Virtual 1.29 requirements: ExtUtils::MakeMaker 0 Software-License-0.103012 pathname: R/RJ/RJBS/Software-License-0.103012.tar.gz provides: Software::License 0.103012 Software::License::AGPL_3 0.103012 Software::License::Apache_1_1 0.103012 Software::License::Apache_2_0 0.103012 Software::License::Artistic_1_0 0.103012 Software::License::Artistic_2_0 0.103012 Software::License::BSD 0.103012 Software::License::CC0_1_0 0.103012 Software::License::Custom 0.103012 Software::License::FreeBSD 0.103012 Software::License::GFDL_1_2 0.103012 Software::License::GFDL_1_3 0.103012 Software::License::GPL_1 0.103012 Software::License::GPL_2 0.103012 Software::License::GPL_3 0.103012 Software::License::LGPL_2_1 0.103012 Software::License::LGPL_3_0 0.103012 Software::License::MIT 0.103012 Software::License::Mozilla_1_0 0.103012 Software::License::Mozilla_1_1 0.103012 Software::License::Mozilla_2_0 0.103012 Software::License::None 0.103012 Software::License::OpenSSL 0.103012 Software::License::Perl_5 0.103012 Software::License::PostgreSQL 0.103012 Software::License::QPL_1_0 0.103012 Software::License::SSLeay 0.103012 Software::License::Sun 0.103012 Software::License::Zlib 0.103012 Software::LicenseUtils 0.103012 requirements: Carp 0 Data::Section 0 ExtUtils::MakeMaker 0 File::Spec 0 IO::Dir 0 Module::Load 0 Text::Template 0 parent 0 perl 5.006 strict 0 warnings 0 Software-License-CCpack-1.11 pathname: B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz provides: Software::License::CC_BY_1_0 1.11 Software::License::CC_BY_2_0 1.11 Software::License::CC_BY_3_0 1.11 Software::License::CC_BY_4_0 1.11 Software::License::CC_BY_NC_1_0 1.11 Software::License::CC_BY_NC_2_0 1.11 Software::License::CC_BY_NC_3_0 1.11 Software::License::CC_BY_NC_4_0 1.11 Software::License::CC_BY_NC_ND_2_0 1.11 Software::License::CC_BY_NC_ND_3_0 1.11 Software::License::CC_BY_NC_ND_4_0 1.11 Software::License::CC_BY_NC_SA_1_0 1.11 Software::License::CC_BY_NC_SA_2_0 1.11 Software::License::CC_BY_NC_SA_3_0 1.11 Software::License::CC_BY_NC_SA_4_0 1.11 Software::License::CC_BY_ND_1_0 1.11 Software::License::CC_BY_ND_2_0 1.11 Software::License::CC_BY_ND_3_0 1.11 Software::License::CC_BY_ND_4_0 1.11 Software::License::CC_BY_ND_NC_1_0 1.11 Software::License::CC_BY_SA_1_0 1.11 Software::License::CC_BY_SA_2_0 1.11 Software::License::CC_BY_SA_3_0 1.11 Software::License::CC_BY_SA_4_0 1.11 Software::License::CC_PDM_1_0 1.11 Software::License::CCpack 1.11 requirements: ExtUtils::MakeMaker 0 Software::License 0 String-Format-1.17 pathname: D/DA/DARREN/String-Format-1.17.tar.gz provides: String::Format 1.17 requirements: ExtUtils::MakeMaker 0 Test::More 0 Sub-Exporter-0.987 pathname: R/RJ/RJBS/Sub-Exporter-0.987.tar.gz provides: Sub::Exporter 0.987 Sub::Exporter::Util 0.987 requirements: Carp 0 Data::OptList 0.100 ExtUtils::MakeMaker 6.30 Params::Util 0.14 Sub::Install 0.92 strict 0 warnings 0 Sub-Install-0.928 pathname: R/RJ/RJBS/Sub-Install-0.928.tar.gz provides: Sub::Install 0.928 requirements: B 0 Carp 0 ExtUtils::MakeMaker 6.30 Scalar::Util 0 strict 0 warnings 0 Task-Weaken-1.04 pathname: A/AD/ADAMK/Task-Weaken-1.04.tar.gz provides: Task::Weaken 1.04 requirements: ExtUtils::MakeMaker 6.42 File::Spec 0.80 Scalar::Util 1.14 Test::More 0.42 perl 5.005 Test-CPAN-Meta-JSON-0.16 pathname: B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz provides: Test::CPAN::Meta::JSON 0.16 Test::CPAN::Meta::JSON::Version 0.16 requirements: ExtUtils::MakeMaker 0 IO::File 0 JSON 2.15 Test::Builder 0 Test::Builder::Tester 0 Test::More 0.70 Test-Deep-1.127 pathname: R/RJ/RJBS/Test-Deep-1.127.tar.gz provides: Test::Deep 1.127 Test::Deep::All undef Test::Deep::Any undef Test::Deep::Array undef Test::Deep::ArrayEach undef Test::Deep::ArrayElementsOnly undef Test::Deep::ArrayLength undef Test::Deep::ArrayLengthOnly undef Test::Deep::Blessed undef Test::Deep::Boolean undef Test::Deep::Cache undef Test::Deep::Cache::Simple undef Test::Deep::Class undef Test::Deep::Cmp undef Test::Deep::Code undef Test::Deep::Hash undef Test::Deep::HashEach undef Test::Deep::HashElements undef Test::Deep::HashKeys undef Test::Deep::HashKeysOnly undef Test::Deep::Ignore undef Test::Deep::Isa undef Test::Deep::ListMethods undef Test::Deep::MM undef Test::Deep::Methods undef Test::Deep::NoTest undef Test::Deep::None undef Test::Deep::Number undef Test::Deep::Obj undef Test::Deep::Ref undef Test::Deep::RefType undef Test::Deep::Regexp undef Test::Deep::RegexpMatches undef Test::Deep::RegexpOnly undef Test::Deep::RegexpRef undef Test::Deep::RegexpRefOnly undef Test::Deep::RegexpVersion undef Test::Deep::ScalarRef undef Test::Deep::ScalarRefOnly undef Test::Deep::Set undef Test::Deep::Shallow undef Test::Deep::Stack undef Test::Deep::String undef Test::Deep::SubHash undef Test::Deep::SubHashElements undef Test::Deep::SubHashKeys undef Test::Deep::SubHashKeysOnly undef Test::Deep::SuperHash undef Test::Deep::SuperHashElements undef Test::Deep::SuperHashKeys undef Test::Deep::SuperHashKeysOnly undef requirements: ExtUtils::MakeMaker 0 List::Util 1.09 Scalar::Util 1.09 Test::Builder 0 Test-Fatal-0.014 pathname: R/RJ/RJBS/Test-Fatal-0.014.tar.gz provides: Test::Fatal 0.014 requirements: Carp 0 Exporter 5.57 ExtUtils::MakeMaker 0 Test::Builder 0 Try::Tiny 0.07 strict 0 warnings 0 Test-Kwalitee-1.26 pathname: E/ET/ETHER/Test-Kwalitee-1.26.tar.gz provides: Test::Kwalitee 1.26 requirements: Cwd 0 Exporter 0 ExtUtils::MakeMaker 0 Module::CPANTS::Analyse 0.92 Test::Builder 0.88 parent 0 perl 5.006 strict 0 warnings 0 Test-NoWarnings-1.04 pathname: A/AD/ADAMK/Test-NoWarnings-1.04.tar.gz provides: Test::NoWarnings 1.04 Test::NoWarnings::Warning 1.04 requirements: ExtUtils::MakeMaker 0 Test::Builder 0.86 Test::More 0.47 Test::Tester 0.107 perl 5.006 Test-Object-0.07 pathname: A/AD/ADAMK/Test-Object-0.07.tar.gz provides: Test::Object 0.07 Test::Object::Test 0.07 requirements: Carp 0 Exporter 0 ExtUtils::MakeMaker 0 File::Spec 0.80 Scalar::Util 1.16 Test::Builder 0.33 Test::Builder::Tester 1.02 Test::More 0.42 overload 0 Test-Perl-Critic-1.03 pathname: T/TH/THALJEF/Test-Perl-Critic-1.03.tar.gz provides: Test::Perl::Critic 1.03 requirements: Carp 0 English 0 MCE 1.52 Module::Build 0.4 Perl::Critic 1.105 Perl::Critic::Utils 1.105 Perl::Critic::Violation 1.105 Test::Builder 0 Test::More 0 strict 0 warnings 0 Test-Pod-1.51 pathname: E/ET/ETHER/Test-Pod-1.51.tar.gz provides: Test::Pod 1.51 requirements: ExtUtils::MakeMaker 0 File::Find 0 Pod::Simple 3.05 Test::Builder::Tester 1.02 Test::More 0.62 perl 5.008 Test-Pod-Coverage-1.10 pathname: N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz provides: Test::Pod::Coverage 1.10 requirements: ExtUtils::MakeMaker 0 Pod::Coverage 0 Test::Builder 0 perl 5.006 strict 0 warnings 0 Test-Simple-1.302111 pathname: E/EX/EXODIST/Test-Simple-1.302111.tar.gz provides: Test2 1.302111 Test2::API 1.302111 Test2::API::Breakage 1.302111 Test2::API::Context 1.302111 Test2::API::Instance 1.302111 Test2::API::Stack 1.302111 Test2::Event 1.302111 Test2::Event::Bail 1.302111 Test2::Event::Diag 1.302111 Test2::Event::Encoding 1.302111 Test2::Event::Exception 1.302111 Test2::Event::Fail 1.302111 Test2::Event::Generic 1.302111 Test2::Event::Note 1.302111 Test2::Event::Ok 1.302111 Test2::Event::Pass 1.302111 Test2::Event::Plan 1.302111 Test2::Event::Skip 1.302111 Test2::Event::Subtest 1.302111 Test2::Event::TAP::Version 1.302111 Test2::Event::Waiting 1.302111 Test2::EventFacet 1.302111 Test2::EventFacet::About 1.302111 Test2::EventFacet::Amnesty 1.302111 Test2::EventFacet::Assert 1.302111 Test2::EventFacet::Control 1.302111 Test2::EventFacet::Error 1.302111 Test2::EventFacet::Info 1.302111 Test2::EventFacet::Meta 1.302111 Test2::EventFacet::Parent 1.302111 Test2::EventFacet::Plan 1.302111 Test2::EventFacet::Trace 1.302111 Test2::Formatter 1.302111 Test2::Formatter::TAP 1.302111 Test2::Hub 1.302111 Test2::Hub::Interceptor 1.302111 Test2::Hub::Interceptor::Terminator 1.302111 Test2::Hub::Subtest 1.302111 Test2::IPC 1.302111 Test2::IPC::Driver 1.302111 Test2::IPC::Driver::Files 1.302111 Test2::Tools::Tiny 1.302111 Test2::Util 1.302111 Test2::Util::ExternalMeta 1.302111 Test2::Util::Facets2Legacy 1.302111 Test2::Util::HashBase 1.302111 Test2::Util::Trace 1.302111 Test::Builder 1.302111 Test::Builder::Formatter 1.302111 Test::Builder::IO::Scalar 2.114 Test::Builder::Module 1.302111 Test::Builder::Tester 1.302111 Test::Builder::Tester::Color 1.302111 Test::Builder::Tester::Tie 1.302111 Test::Builder::TodoDiag 1.302111 Test::More 1.302111 Test::Simple 1.302111 Test::Tester 1.302111 Test::Tester::Capture 1.302111 Test::Tester::CaptureRunner 1.302111 Test::Tester::Delegate 1.302111 Test::use::ok 1.302111 ok 1.302111 requirements: ExtUtils::MakeMaker 0 File::Spec 0 File::Temp 0 Scalar::Util 1.13 Storable 0 perl 5.006002 utf8 0 Test-SubCalls-1.09 pathname: A/AD/ADAMK/Test-SubCalls-1.09.tar.gz provides: Test::SubCalls 1.09 requirements: ExtUtils::MakeMaker 6.42 File::Spec 0.80 Hook::LexWrap 0.20 Test::Builder::Tester 1.02 Test::More 0.42 Text-Template-1.47 pathname: M/MS/MSCHOUT/Text-Template-1.47.tar.gz provides: Text::Template 1.47 Text::Template::Preprocess 1.47 requirements: Carp 0 Exporter 0 ExtUtils::MakeMaker 0 perl 5.004 strict 0 vars 0 Try-Tiny-0.28 pathname: E/ET/ETHER/Try-Tiny-0.28.tar.gz provides: Try::Tiny 0.28 requirements: Carp 0 Exporter 5.57 ExtUtils::MakeMaker 0 constant 0 perl 5.006 strict 0 warnings 0 XSLoader-0.24 pathname: S/SA/SAPER/XSLoader-0.24.tar.gz provides: XSLoader 0.24 requirements: ExtUtils::MakeMaker 0 Test::More 0.47 Test000755000765000024 013534515620 14762 5ustar00jonasbnstaff000000000000Test-Timer-2.11/libTimer.pm100644000765000024 5336013534515620 16567 0ustar00jonasbnstaff000000000000Test-Timer-2.11/lib/Testpackage Test::Timer; use warnings; use strict; use vars qw($VERSION @ISA @EXPORT); use Benchmark; # timestr use Carp qw(croak); use Error qw(:try); use Test::Builder; use base 'Test::Builder::Module'; use constant TRUE => 1; use constant FALSE => 0; #own use Test::Timer::TimeoutException; @EXPORT = qw(time_ok time_nok time_atleast time_atmost time_between); $VERSION = '2.11'; my $test = Test::Builder->new; my $timeout = 0; our $alarm = 2; #default alarm # syntactic sugar for time_atmost sub time_ok { return time_atmost(@_); } # inverse test of time_ok sub time_nok { my ( $code, $upperthreshold, $name ) = @_; # timing from zero to upper threshold my ($within, $time) = _runtest( $code, 0, $upperthreshold ); # are we within the specified threshold if ($within == TRUE) { # we inverse the result, since we are the inverse of time_ok $within = FALSE; $test->ok( $within, $name ); # no, we fail $test->diag( "Test ran $time seconds and did not exceed specified threshold of $upperthreshold seconds" ); } else { # we inverse the result, since we are the inverse of time_ok $within = TRUE; $test->ok( $within, $name ); # yes, we do not fail } return $within; } # test to make sure we are below a specified threshold sub time_atmost { my ( $code, $upperthreshold, $name ) = @_; # timing from zero to upper threshold my ($within, $time) = _runtest( $code, 0, $upperthreshold ); # are we within the specified threshold if ($within == TRUE) { $test->ok( $within, $name ); # yes, we do not fail } else { $test->ok( $within, $name ); # no, we fail $test->diag( "Test ran $time seconds and exceeded specified threshold of $upperthreshold seconds" ); } return $within; } # test to make sure we are above a specified threshold sub time_atleast { my ( $code, $lowerthreshold, $name ) = @_; # timing from lowerthreshold to nothing my ($above, $time) = _runtest( $code, $lowerthreshold, undef ); # are we above the specified threshold if ($above == TRUE) { $test->ok( $above, $name ); # yes, we do not fail } else { $test->ok( $above, $name ); # no, we fail $test->diag( "Test ran $time seconds and did not exceed specified threshold of $lowerthreshold seconds" ); } return $above; } # test to make sure we are witin a specified threshold time frame sub time_between { my ( $code, $lowerthreshold, $upperthreshold, $name ) = @_; # timing from lower to upper threshold my ($within, $time) = _runtest( $code, $lowerthreshold, $upperthreshold ); # are we within the specified threshold if ($within == TRUE) { $test->ok( $within, $name ); # yes, we do not fail } else { $test->ok( $within, $name ); # no, we fail if ($timeout) { $test->diag( "Execution ran $timeout seconds and did not execute within specified interval $lowerthreshold - $upperthreshold seconds and timed out"); } else { $test->diag( "Test ran $time seconds and did not execute within specified interval $lowerthreshold - $upperthreshold seconds" ); } } return $within; } # helper routine to make initiate timing and make initial interpretation of results # test mehtods do the final interpretation sub _runtest { my ( $code, $lowerthreshold, $upperthreshold ) = @_; my $ok = FALSE; my $time = 0; try { # we have both a lower and upper threshold (time_between, time_most, time_ok) if ( defined $lowerthreshold and defined $upperthreshold ) { $time = _benchmark( $code, $upperthreshold ); if ( $time >= $lowerthreshold and $time <= $upperthreshold ) { $ok = TRUE; } else { $ok = FALSE; } # we just have a lower threshold (time_atleast) } elsif ( defined $lowerthreshold ) { $time = _benchmark( $code ); if ( $time >= $lowerthreshold ) { $ok = TRUE; } else { $ok = FALSE; } } } # catching a timeout so we do not run forever catch Test::Timer::TimeoutException with { my $E = shift; $timeout = $E->{-text}; return (undef, $time); # we return undef as result }; return ($ok, $time); } # actual timing using benchmark sub _benchmark { my ( $code, $threshold ) = @_; my $time = 0; # We default to no alarm my $local_alarm = 0; # We only define an alarm if we have an upper threshold # alarm is based on upper threshold + default alarm # default alarm can be extended, see the docs if (defined $threshold) { $local_alarm = $threshold + $alarm; } # setting first benchmark my $t0 = Benchmark->new(); # defining alarm signal handler # the handler takes care of terminating the # benchmarking local $SIG{ALRM} = sub { my $t_alarm = Benchmark->new(); my $alarm_time_string = timediff( $t_alarm, $t0 )->real; throw Test::Timer::TimeoutException($alarm_time_string); }; # setting alarm alarm( $local_alarm ); # running code &{$code}; # clear alarm alarm( 0 ); # setting second benchmark my $t1 = Benchmark->new(); # parsing benchmark output my $timestring = timediff( $t1, $t0 )->real; return $timestring; } 1; __END__ =pod =begin markdown # Test::Timer [![CPAN version](https://badge.fury.io/pl/Test-Timer.svg)](http://badge.fury.io/pl/Test-Timer) ![stability-stable](https://img.shields.io/badge/stability-stable-green.svg) [![Build Status](https://travis-ci.org/jonasbn/perl-test-timer.svg?branch=master)](https://travis-ci.org/jonasbn/perl-test-timer) [![Coverage Status](https://coveralls.io/repos/github/jonasbn/perl-test-timer/badge.svg?branch=master)](https://coveralls.io/github/jonasbn/perl-test-timer?branch=master) [![License: Artistic-2.0](https://img.shields.io/badge/License-Artistic%202.0-0298c3.svg)](https://opensource.org/licenses/Artistic-2.0) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1391/badge)](https://bestpractices.coreinfrastructure.org/projects/1391) - [NAME](#name) - [VERSION](#version) - [FEATURES](#features) - [SYNOPSIS](#synopsis) - [DESCRIPTION](#description) - [EXPORT](#export) - [SUBROUTINES/METHODS](#subroutinesmethods) - [time\_ok](#time_ok) - [time\_nok](#time_nok) - [time\_atmost](#time_atmost) - [time\_atleast](#time_atleast) - [time\_between](#time_between) - [PRIVATE FUNCTIONS](#private-functions) - [\_runtest](#_runtest) - [\_benchmark](#_benchmark) - [import](#import) - [DIAGNOSTICS](#diagnostics) - [CONFIGURATION AND ENVIRONMENT](#configuration-and-environment) - [DEPENDENCIES](#dependencies) - [INCOMPATIBILITIES](#incompatibilities) - [BUGS AND LIMITATIONS](#bugs-and-limitations) - [TEST AND QUALITY](#test-and-quality) - [CONTINUOUS INTEGRATION](#continuous-integration) - [SEE ALSO](#see-also) - [ISSUE REPORTING](#issue-reporting) - [SUPPORT](#support) - [DEVELOPMENT](#development) - [AUTHOR](#author) - [ACKNOWLEDGEMENTS](#acknowledgements) - [LICENSE AND COPYRIGHT](#license-and-copyright) =end markdown =head1 NAME Test::Timer - test module to test/assert response times =head1 VERSION The documentation describes version 2.10 of Test::Timer =head1 FEATURES =over =item * Test subroutines to implement unit-tests to time that your code executes before a specified threshold =item * Test subroutines to implement unit-tests to time that your code execution exceeds a specified threshold =item * Test subroutine to implement unit-tests to time that your code executes within a specified time frame =item * Supports measurements in seconds =item * Implements configurable alarm signal handler to make sure that your tests do not execute forever =back =head1 SYNOPSIS use Test::Timer; time_ok( sub { doYourStuffButBeQuickAboutIt(); }, 1, 'threshold of one second'); time_atmost( sub { doYourStuffYouHave10Seconds(); }, 10, 'threshold of 10 seconds'); time_between( sub { doYourStuffYouHave5-10Seconds(); }, 5, 10, 'lower threshold of 5 seconds and upper threshold of 10 seconds'); # Will succeed time_nok( sub { sleep(2); }, 1, 'threshold of one second'); time_atleast( sub { sleep(2); }, 2, 'threshold of one second'); # Will fail after 5 (threshold) + 2 seconds (default alarm) time_ok( sub { while(1) { sleep(1); } }, 5, 'threshold of one second'); $test::Timer::alarm = 6 #default 2 seconds # Will fail after 5 (threshold) + 6 seconds (specified alarm) time_ok( sub { while(1) { sleep(1); } }, 5, 'threshold of one second'); =head1 DESCRIPTION Test::Timer implements a set of test primitives to test and assert test times from bodies of code. The key features are subroutines to assert or test the following: =over =item * that a given piece of code does not exceed a specified time limit =item * that a given piece of code takes longer than a specified time limit and does not exceed another =back =head1 EXPORT Test::Timer exports: =over =item * L =item * L =item * L =item * L =item * L =back =head1 SUBROUTINES/METHODS =head2 time_ok Takes the following parameters: =over =item * a reference to a block of code (anonymous sub) =item * a threshold specified as a integer indicating a number of seconds =item * a string specifying a test name =back time_nok( sub { sleep(2); }, 1, 'threshold of one second'); If the execution of the code exceeds the threshold specified the test fail with the following diagnostic message Test ran 2 seconds and exceeded specified threshold of 1 seconds =head2 time_nok The is the inverted variant of L, it passes if the threshold is exceeded and fails if the benchmark of the code is within the specified timing threshold. The API is the same as for L. time_nok( sub { sleep(1); }, 2, 'threshold of two seconds'); If the execution of the code executes below the threshold specified the test fail with the following diagnostic message Test ran 1 seconds and did not exceed specified threshold of 2 seconds =head2 time_atmost This is I for L time_atmost( sub { doYourStuffButBeQuickAboutIt(); }, 1, 'threshold of one second'); If the execution of the code exceeds the threshold specified the test fail with the following diagnostic message Test ran N seconds and exceeded specified threshold of 1 seconds N will be the actual measured execution time of the specified code =for HTML time_atmost visualization =for markdown ![time_atmost visualization](https://jonasbn.github.io/perl-test-timer/assets/images/time_atmost.png) =begin text Graphical visualization of the above example. +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Time in seconds: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Test outcome: | S| S| F| F| F| F| F| F| F| F| F| F| F| F| F| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ F = failure S = Success =end text =head2 time_atleast time_atleast( sub { doYourStuffAndTakeYourTimeAboutIt(); }, 1, 'threshold of 1 second'); The test succeeds if the code takes at least the number of seconds specified by the timing threshold. If the code executes faster, the test fails with the following diagnostic message Test ran 1 seconds and did not exceed specified threshold of 2 seconds Please be aware that Test::Timer, breaks the execution with an alarm specified to trigger after the specified threshold + 2 seconds (default), so if you expect your execution to run longer, set the alarm accordingly. $Test::Timer::alarm = $my_alarm_in_seconds; See also L. =for HTML time_atleast visualization =for markdown ![time_atleast visualization](https://jonasbn.github.io/perl-test-timer/assets/images/time_atleast.png) =begin text Graphical visualization of the above example. +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Time in seconds: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Test outcome: | F| F| S| S| S| S| S| S| S| S| S| S| S| S| S| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ F = failure S = Success =end text =head2 time_between This method is a more extensive variant of L and L, you can specify a lower and upper threshold, the code has to execute within this interval in order for the test to succeed time_between( sub { sleep(2); }, 5, 10, 'lower threshold of 5 seconds and upper threshold of 10 seconds'); If the code executes faster than the lower threshold or exceeds the upper threshold, the test fails with the following diagnostic message Test ran 2 seconds and did not execute within specified interval 5 - 10 seconds Or Test ran 12 seconds and did not execute within specified interval 5 - 10 seconds =for HTML time_between visualization =for markdown ![time_between visualization](https://jonasbn.github.io/perl-test-timer/assets/images/time_between.png) =begin text Graphical visualization of the above example. +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Time in seconds: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Test outcome: | F| F| F| F| F| S| S| S| S| S| S| F| F| F| F| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ F = failure S = Success =end text =head1 PRIVATE FUNCTIONS =head2 _runtest This is a method to handle the result from L<_benchmark|/_benchmark> is initiates the benchmark calling benchmark and based on whether it is within the provided interval true (1) is returned and if not false (0). =head2 _benchmark This is the method doing the actual benchmark, if a better method is located this is the place to do the handy work. Currently L is used. An alternative could be L, but I do not know this module very well and L is core, so this is used for now. The method takes two parameters: =over =item * a code block via a code reference =item * a threshold (the upper threshold, since this is added to the default alarm =back =head2 import Test::Builder required import to do some import I for the test methods exported from Test::Timer. Please refer to the documentation in L =head1 DIAGNOSTICS All tests either fail or succeed, but a few exceptions are implemented, these are listed below. =over =item * Test did not exceed specified threshold, this message is diagnosis for L and L tests, which do not exceed their specified threshold =item * Test exceeded specified threshold, this message is a diagnostic for L and L, if the specified threshold is surpassed. This is the key point of the module, either your code is too slow and you should address this or your threshold is too low, in which case you can set it a bit higher and run the test again. =item * Test did not execute within specified interval, this is the diagnostic from L, it is the diagnosis if the execution of the code is not between the specified lower and upper thresholds =item * Insufficient parameters, this is the message if a specified test is not provided with the sufficient number of parameters, consult this documentation and correct accordingly =item * Execution exceeded threshold and timed out, the exception is thrown if the execution of tested code exceeds even the alarm, which is default 2 seconds, but can be set by the user or is equal to the upper threshold + 2 seconds The exception results in a diagnostic for the failing test. This is a failsafe to avoid that code runs forever. If you get this diagnose either your code is too slow and you should address this or it might be error prone. If this is not the case adjust the alarm setting to suit your situation. =back =head1 CONFIGURATION AND ENVIRONMENT This module requires no special configuration or environment. Tests are sensitive and be configured using environment and configuration files, please see the section on L. =head1 DEPENDENCIES =over =item * L =item * L =item * L =item * L =item * L =back =head1 INCOMPATIBILITIES This module holds no known incompatibilities. =head1 BUGS AND LIMITATIONS This module holds no known bugs. The current implementations only use seconds and resolutions should be higher, so the current implementation is limited to seconds as the highest resolution. On occasion failing tests with CPAN-testers have been observed. This seem to be related to the test-suite being not taking into account that some smoke-testers do not prioritize resources for the test run and that additional processes/jobs are running. The test-suite have been adjusted to accommodate this but these issues might reoccur. =head1 TEST AND QUALITY =for HTML Coverage Status =for markdown [![Coverage Status](https://coveralls.io/repos/github/jonasbn/perl-test-timer/badge.svg?branch=master)](https://coveralls.io/github/jonasbn/perl-test-timer?branch=master) Coverage report for the release described in this documentation (see L). ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ blib/lib/Test/Timer.pm 100.0 95.0 66.6 100.0 100.0 99.9 98.0 ...Timer/TimeoutException.pm 100.0 n/a n/a 100.0 100.0 0.0 100.0 Total 100.0 95.0 66.6 100.0 100.0 100.0 98.4 ---------------------------- ------ ------ ------ ------ ------ ------ ------ The L test runs with severity 5 (gentle) for now, please refer to F and F. Set TEST_POD to enable L test in F and L test in F. Set TEST_CRITIC to enable L test in F =head2 CONTINUOUS INTEGRATION This distribution uses Travis for continuous integration testing, the Travis reports are public available. =for HTML =for markdown [![Build Status](https://travis-ci.org/jonasbn/perl-test-timer.svg?branch=master)](https://travis-ci.org/jonasbn/perl-test-timer) =head1 SEE ALSO =over =item * L =back =head1 ISSUE REPORTING Please report any bugs or feature requests using Github =over =item * L =back =head1 SUPPORT You can find (this) documentation for this module with the C command. perldoc Test::Timer You can also look for information at: =over =item * L =item * L =item * L =item * L =back =head1 DEVELOPMENT =over =item * L, please see L. =back =head1 AUTHOR =over =item * Jonas B. Nielsen (jonasbn) C<< >> =back =head1 ACKNOWLEDGEMENTS =over =item * Mohammad S Anwar, POD corrections PRs #23 =item * Erik Johansen, suggestion for clearing alarm =item * Gregor Herrmann from the Debian Perl Group, PR #16 fixes to spelling mistakes =item * Nigel Horne, issue #15 suggestion for better assertion in L =item * Nigel Horne, issue #10/#12 suggestion for improvement to diagnostics =item * p-alik, PR #4 eliminating warnings during test =item * Kent Fredric, PR #7 addressing file permissions =item * Nick Morrott, PR #5 corrections to POD =item * Bartosz Jakubski, reporting issue #3 =item * Gabor Szabo (GZABO), suggestion for specification of interval thresholds even though this was obsoleted by the later introduced time_between =item * Paul Leonerd Evans (PEVANS), suggestions for time_atleast and time_atmost and the handling of $SIG{ALRM}. Also bug report for addressing issue with Debian packaging resulting in release 0.10 =item * brian d foy (BDFOY), for patch to L<_runtest|/_runtest> =back =head1 LICENSE AND COPYRIGHT Test::Timer and related modules are (C) by Jonas B. Nielsen, (jonasbn) 2007-2019 Test::Timer and related modules are released under the Artistic License 2.0 Used distributions are under copyright of there respective authors and designated licenses Image used on L is under copyright by L =cut author-critic.t100644000765000024 40513534515620 16621 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } use strict; use warnings; use Test::Perl::Critic (-profile => "t/perlcriticrc") x!! -e "t/perlcriticrc"; all_critic_ok(); Timer000755000765000024 013534515620 15537 5ustar00jonasbnstaff000000000000Test-Timer-2.11/t/TestTest.pm100644000765000024 33413534515620 17134 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t/Test/Timerpackage Test::Timer::Test; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(_sleep); sub _sleep { my $interval = shift; sleep($interval); return $interval; } 1; release-kwalitee.t100644000765000024 50413534515620 17267 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t BEGIN { unless ($ENV{RELEASE_TESTING}) { print qq{1..0 # SKIP these tests are for release candidate testing\n}; exit } } # this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.12 use strict; use warnings; use Test::More 0.88; use Test::Kwalitee 1.21 'kwalitee_ok'; kwalitee_ok(); done_testing; author-pod-syntax.t100644000765000024 45413534515620 17456 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); release-meta-json.t100644000765000024 27313534515620 17362 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t#!perl BEGIN { unless ($ENV{RELEASE_TESTING}) { print qq{1..0 # SKIP these tests are for release candidate testing\n}; exit } } use Test::CPAN::Meta::JSON; meta_json_ok(); docs000755000765000024 013534515620 14225 5ustar00jonasbnstaff000000000000Test-Timer-2.11test-timer.graffle100644000765000024 1214613534515620 20036 0ustar00jonasbnstaff000000000000Test-Timer-2.11/docsis8?w~'o'i'Swǻd;v ` 1E($ZMwOqwE2tx"Ǒ}~@񭱡հgo/{o濶Oz7g;%.;G[J{76u0f~XܲR nt]8S齋Xږ_xM{,Rc'_"߄ ppDܞnʻ{V~YP_ΩO6?=!(`a=]ΑP܃0RibƟTY '?xcoEW+f?͵/`ΰ=ӭ|='c4?C|>=A#WEZ޻ET>[Mȯ&\R_u|5Zgj eQ'b._Ã{rv37y{xyge#w>OOhǏ\i8jWqA/šGǿ͊hpOϟ2J^Lw| X#uQ#&_'20+M2D b K'榡UNjwi6&@rQ ޥ.kd;,.L^9Sp+h0lh**Bŷ6-ݶ(eQ['Gg+1y"Gk$21#Ηyd%tfiM6r%6fG-zo>0/!{LmmY^OXI"PEj!DlTXՍ;XƐ )bUSa&҆ɣ&װ~dgcìw6) ?/oZX߽=_! k_ 'K}nǝfv{᛾;5%QÏc?;;\n{uaKf5zieE&V+2V#~,wR7"z'>ra u{oDXvgߛڮd'z0Kѩ71@gѩѱ@gћѩ:SkTUStuDk:#: Tʿ&h::c):눎k:kP5A &txYKxtC=-ys:nGӭW {">3SbXnӍYz5OH&7kUꤹh5IXqqqqqq+rI INU ߎ{ɯZ]3e׺i2VQnhH!9@ $"g56nH7`Om8^ҥeo%  XBFU d}2klS>!< {wйKټl6}p G1J0VhbB2 CP_j+t [,NFK( _|LcCLEo-8JLӹz8P{+< ;6@ўjсyD'CA-:/{.EthŀZSU5Av]aWv]aW gtttttttt:g;,:٬ON@AAAAAAsU{ : : : : : : :ѱZ6@AAAAAAsaW ,1߷]-< # H首 $ VN,ZV3Pj9!jY{B2"=Ԓ$en%4 En ,`AEa,Os&c%Ky円L"pVctQv%]Z\\V/KYz8`0̀i'dTa@'F<-6僻(CqW莑k p[l&fH*$I0d2K_2ъ˓*ɛq= (WuMT+Wh,/5EƟ1hF4yWb#}HaM#j?+3D'heQ{xI̢1]b㠸KWO G +Q>+mÒ>N;ķ1Il53pE]'2Y =ǍP&qÈ#{J*2ُje2^,1)'ɩOR9saީCrhӔRyfz~?0f=9>fSN "ȷ VM"+Xi&u={=:H'fՊG|n HB>44lJQ#UKhr,YA+g8%W?t/.^xNv:v9(|author-pod-coverage.t100644000765000024 53613534515620 17724 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # 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' }); release-cpan-changes.t100644000765000024 55313534515620 20015 0ustar00jonasbnstaff000000000000Test-Timer-2.11/t BEGIN { unless ($ENV{RELEASE_TESTING}) { print qq{1..0 # SKIP these tests are for release candidate testing\n}; exit } } use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::CPAN::Changes 0.012 use Test::More 0.96 tests => 1; use Test::CPAN::Changes; subtest 'changes_ok' => sub { changes_file_ok('Changes'); }; perl-test-timer.code-workspace100644000765000024 54713534515620 21310 0ustar00jonasbnstaff000000000000Test-Timer-2.11{ "folders": [ { "path": "." } ], "settings": { "perlSyntax.perlExecutable": "/Users/jonasbn/perl5/perlbrew/perls/perl-5.28.1/bin/perl", "perlcritic.executable": "/Users/jonasbn/perl5/perlbrew/perls/perl-5.28.1/bin/perlcritic", "perlcritic.severity": "brutal", "perlcritic.additionalArguments": [ "--profile", "t/perlcriticrc" ] } }Timer000755000765000024 013534515620 16042 5ustar00jonasbnstaff000000000000Test-Timer-2.11/lib/TestTimeoutException.pm100644000765000024 404013534515620 22043 0ustar00jonasbnstaff000000000000Test-Timer-2.11/lib/Test/Timerpackage Test::Timer::TimeoutException; use strict; use warnings; use vars qw($VERSION); use Data::Dumper; use base 'Error'; use overload ( '""' => 'stringify' ); $VERSION = '2.09'; sub new { my ($self, $time) = @_; local $Error::Depth = $Error::Depth + 1; $self = $self->SUPER::new( -text => $time, -value => $time ); return $self; } 1; __END__ =pod =head1 NAME Test::Timer::TimeoutException - exception class for Test::Timer =head1 VERSION This documentation describes 2.09 of Test::Timer::TimeoutException =head1 SYNOPSIS use Test::Timer::TimeoutException; throw Test::Timer::TimeoutException($timeout); =head1 DESCRIPTION This is an exception class for Test::Timer. It is used in conjunction with the alarm signal and is thrown if the alarm is set of. =head1 SUBROUTINES/METHODS =head2 new This is the constructor, this is called using throw, please refer to the documentation for L, see also the SYNOPSIS. =head1 DIAGNOSTICS This is an exception class, it holds not special diagnostics apart from what is described above in the general description. =head1 CONFIGURATION AND ENVIRONMENT This module requires no special configuration or environment. =head1 DEPENDENCIES =over =item * L =back =head1 INCOMPATIBILITIES This class holds no known incompatibilities. =head1 BUGS AND LIMITATIONS This class holds no known bugs or limitations. =head1 TEST AND QUALITY This class is tested as part of L =head1 SEE ALSO =over =item * L =back =head1 AUTHOR =over =item * Jonas B. Nielsen (jonasbn) C<< >> =back =head1 LICENSE AND COPYRIGHT Test::Timer and related modules are (C) by Jonas B. Nielsen, (jonasbn) 2007-2017 Test::Timer and related modules are released under the Artistic License 2.0 Used distributions are under copyright of there respective authors and designated licenses Image used on L is under copyright by L =cut