Report for warnings-everywhere-0.024

Back
From: metabase:user:320bfe00-2aae-11df-837a-5e0a49663a4f
Subject: FAIL warnings-everywhere-0.024 v5.25.10 GNU/Linux
Date: 2017-01-27T04:02:16Z

This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Sam Kington,

This is a computer-generated report for warnings-everywhere-0.024
on perl 5.25.10, created by CPAN-Reporter-1.2018.

Thank you for uploading your work to CPAN.  However, there was a problem
testing your distribution.

If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/tmp/basesmoker-reloperl-YYmt/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/categories_disabled.t .... ok
t/categories_enabled.t ..... ok
t/grammatically_correct.t .. ok
# Expect a warning "Unrecognised warning category bees" here
Unrecognised warning category bees at (eval 10) line 1.
t/import_syntax.t .......... ok
t/pod.t .................... ok
t/pod_coverage.t ........... ok
t/profane.t ................ ok

#   Failed test 'Dancer2 was loaded'
#   at t/thwart.t line 137.
#                   'Couldn't find a call to (?^x: ( import::into [^\n]+ warnings [^\n]+ ; \n ) ) in Dancer2.pm for Dancer2
# package Dancer2;
# $Dancer2::VERSION = '0.204004';
# # ABSTRACT: Lightweight yet powerful web application framework
# 
# use strict;
# use warnings;
# use List::Util 'first';
# use Module::Runtime 'use_module';
# use Import::Into;
# use Dancer2::Core;
# use Dancer2::Core::App;
# use Dancer2::Core::Runner;
# use Dancer2::FileUtils;
# 
# our $AUTHORITY = 'SUKRIA';
# 
# sub VERSION { shift->SUPER::VERSION(@_) || '0.000000_000' }
# 
# our $runner;
# 
# sub runner   {$runner}
# sub psgi_app { shift->runner->psgi_app(@_) }
# 
# sub import {
#     my ($class,  @args)   = @_;
#     my ($caller, $script) = caller;
# 
#     my @final_args;
#     my $clean_import;
#     foreach my $arg (@args) {
# 
#         # ignore, no longer necessary
#         # in the future these will warn as deprecated
#         grep +($arg eq $_), qw<:script :syntax :tests>
#           and next;
# 
#         if ($arg eq ':nopragmas') {
#             $clean_import++;
#             next;
#         }
# 
#         if (substr($arg, 0, 1) eq '!') {
#             push @final_args, $arg, 1;
#         }
#         else {
#             push @final_args, $arg;
#         }
#     }
# 
#     $clean_import
#       or $_->import::into($caller)
#       for qw<strict warnings utf8>;
# 
#     scalar @final_args % 2
#       and die q{parameters must be key/value pairs or '!keyword'};
# 
#     my %final_args = @final_args;
# 
#     my $appname = delete $final_args{appname};
#     $appname ||= $caller;
# 
#     # never instantiated the runner, should do it now
#     if (not defined $runner) {
#         $runner = Dancer2::Core::Runner->new();
#     }
# 
#     # Search through registered apps, creating a new app object
#     # if we do not find one with the same name.
#     my $app;
#     ($app) = first { $_->name eq $appname } @{$runner->apps};
# 
#     if (!$app) {
# 
#         # populating with the server's postponed hooks in advance
#         $app = Dancer2::Core::App->new(
#             name            => $appname,
#             caller          => $script,
#             environment     => $runner->environment,
#             postponed_hooks => $runner->postponed_hooks->{$appname} || {},
#         );
# 
#         # register the app within the runner instance
#         $runner->register_application($app);
#     }
# 
#     _set_import_method_to_caller($caller);
# 
#     # use config dsl class, must extend Dancer2::Core::DSL
#     my $config_dsl = $app->setting('dsl_class') || 'Dancer2::Core::DSL';
#     $final_args{dsl} ||= $config_dsl;
# 
#     # load the DSL, defaulting to Dancer2::Core::DSL
#     my $dsl = use_module($final_args{dsl})->new(app => $app);
#     $dsl->export_symbols_to($caller, \%final_args);
# }
# 
# sub _set_import_method_to_caller {
#     my ($caller) = @_;
# 
#     my $import = sub {
#         my ($self, %options) = @_;
# 
#         my $with = $options{with};
#         for my $key (keys %$with) {
#             $self->dancer_app->setting($key => $with->{$key});
#         }
#     };
# 
#     {
#         ## no critic
#         no strict 'refs';
#         no warnings 'redefine';
#         *{"${caller}::import"} = $import;
#     }
# }
# 
# 1;
# 
# __END__
# 
# =pod
# 
# =encoding UTF-8
# 
# =head1 NAME
# 
# Dancer2 - Lightweight yet powerful web application framework
# 
# =head1 VERSION
# 
# version 0.204004
# 
# =head1 DESCRIPTION
# 
# Dancer2 is the new generation of L<Dancer>, the lightweight web-framework for
# Perl. Dancer2 is a complete rewrite based on L<Moo>.
# 
# Dancer2 can optionally use XS modules for speed, but at its core remains
# fatpackable (packable by L<App::FatPacker>) so you could easily deploy Dancer2
# applications on hosts that do not support custom CPAN modules.
# 
# Dancer2 is easy and fun:
# 
#     use Dancer2;
#     get '/' => sub { "Hello World" };
#     dance;
# 
# This is the main module for the Dancer2 distribution. It contains logic for
# creating a new Dancer2 application.
# 
# You are welcome to join our mailing list.
# For subscription information, mail address and archives see
# L<http://lists.preshweb.co.uk/mailman/listinfo/dancer-users>.
# 
# We are also on IRC: #dancer on irc.perl.org.
# 
# =head2 Documentation Index
# 
# Documentation on Dancer2 is split into several manpages. Below is a
# complete outline on where to go for help.
# 
# =over 4
# 
# =item * Dancer2 Tutorial
# 
# If you are new to the Dancer approach, you should start by reading
# our L<Dancer2::Tutorial>.
# 
# =item * Dancer2 Manual
# 
# L<Dancer2::Manual> is the reference for Dancer2. Here you will find
# information on the concepts of Dancer2 application development and
# a comprehensive reference to the Dancer2 domain specific
# language.
# 
# =item * Dancer2 Keywords
# 
# The keywords for Dancer2 can be found under L<DSL Keywords|Dancer2::Manual/DSL KEYWORDS>.
# 
# =item * Dancer2 Deployment
# 
# For configuration examples of different deployment solutions involving
# Dancer2 and Plack, refer to L<Dancer2::Manual::Deployment>.
# 
# =item * Dancer2 Cookbook
# 
# Specific examples of code for real-life problems and some 'tricks' for
# applications in Dancer can be found in L<Dancer2::Cookbook>
# 
# =item * Dancer2 Config
# 
# For configuration file details refer to L<Dancer2::Config>. It is a
# complete list of all configuration options.
# 
# =item * Dancer2 Plugins
# 
# Refer to L<Dancer2::Plugins> for a partial list of available Dancer2
# plugins. Note that although we try to keep this list up to date we
# expect plugin authors to tell us about new modules.
# 
# For information on how to author a plugin, see L<Dancer2::Plugin/Writing the plugin>.
# 
# =item * Dancer2 Migration guide
# 
# L<Dancer2::Manual::Migration> provides the most up-to-date instruction on
# how to convert a Dancer (1) based application to Dancer2.
# 
# =back
# 
# =head1 FUNCTIONS
# 
# =head2 my $runner=runner();
# 
# Returns the current runner. It is of type L<Dancer2::Core::Runner>.
# 
# =head1 AUTHORS
# 
# =head2 CORE DEVELOPERS
# 
#     Alberto Simões
#     Alexis Sukrieh
#     Damien Krotkine
#     David Precious
#     Franck Cuny
#     Jason A. Crome
#     Mickey Nasriachi
#     Peter Mottram (SysPete)
#     Russell Jenkins
#     Sawyer X
#     Stefan Hornburg (Racke)
#     Steven Humphrey
#     Yanick Champoux
# 
# =head2 CORE DEVELOPERS EMERITUS
# 
#     David Golden
# 
# =head2 CONTRIBUTORS
# 
#     A. Sinan Unur
#     Ahmad M. Zawawi
#     Alex Beamish
#     Alexander Karelas
#     Alexandr Ciornii
#     Andrew Beverley
#     Andrew Grangaard
#     Andrew Inishev
#     Andrew Solomon
#     Andy Jack
#     Ashvini V
#     B10m
#     Bas Bloemsaat
#     baynes
#     Ben Hutton
#     biafra
#     Blabos de Blebe
#     Breno G. de Oliveira
#     cdmalon
#     Celogeek
#     Cesare Gargano
#     Charlie Gonzalez
#     chenchen000
#     Chi Trinh
#     Christian Walde
#     Colin Kuskie
#     cym0n
#     Dale Gallagher
#     Daniel Muey
#     Daniel Perrett
#     David Steinbrunner
#     David Zurborg
#     Davs
#     Dennis Lichtenthäler
#     Dinis Rebolo
#     dtcyganov
#     Erik Smit
#     Fayland Lam
#     Gabor Szabo
#     geistteufel
#     Gideon D'souza
#     Graham Knop
#     Gregor Herrmann
#     Grzegorz Rożniecki
#     Hobbestigrou
#     Hunter McMillen
#     Ivan Bessarabov
#     Ivan Kruglov
#     JaHIY
#     Jakob Voss
#     James Aitken
#     James Raspass
#     James McCoy
#     Jason Lewis
#     Javier Rojas
#     Jean Stebens
#     Jens Rehsack
#     Joel Berger
#     Jonathan Scott Duff
#     Julien Fiegehenn
#     Julio Fraire
#     Kaitlyn Parkhurst (SYMKAT)
#     kbeyazli
#     Keith Broughton
#     lbeesley
#     Lennart Hengstmengel
#     Ludovic Tolhurst-Cleaver
#     Mario Zieschang
#     Mark A. Stratman
#     Masaaki Saito
#     Mateu X Hunter
#     Matt Phillips
#     Matt S Trout
#     Maurice
#     Menno Blom
#     Michael Kröll
#     Michał Wojciechowski
#     Mohammad S Anwar
#     mokko
#     Nick Patch
#     Nick Tonkin
#     Nikita K
#     Nuno Carvalho
#     Olaf Alders
#     Olivier Mengué
#     Omar M. Othman
#     pants
#     Patrick Zimmermann
#     Pau Amma
#     Paul Cochrane
#     Pedro Bruno
#     Pedro Melo
#     Philippe Bricout
#     Ricardo Signes
#     Rick Yakubowski
#     Ruben Amortegui
#     sakshee3
#     Sam Kington
#     Samit Badle
#     Shlomi Fish
#     simbabque
#     Slava Goltser
#     Snigdha
#     Tatsuhiko Miyagawa
#     Tina Müller
#     Tom Hukins
#     Upasana Shukla
#     Vernon Lyon
#     Victor Adam
#     Vince Willems
#     Vincent Bachelier
#     Yves Orton
# 
# =head1 AUTHOR
# 
# Dancer Core Developers
# 
# =head1 COPYRIGHT AND LICENSE
# 
# This software is copyright (c) 2016 by Alexis Sukrieh.
# 
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
# 
# =cut
# 
#  at /tmp/Mgba2IxIGN/thwart_Dancer2.pm line 20.
# BEGIN failed--compilation aborted at /tmp/Mgba2IxIGN/thwart_Dancer2.pm line 20.
# '
#     doesn't match '(?^msx:^ \# \s /tmp/Mgba2IxIGN/thwart_Dancer2.pm \s was \s compiled \s successfully $)'

#   Failed test 'Dancer2 imported warnings'
#   at t/thwart.t line 142.
#                   'Couldn't find a call to (?^x: ( import::into [^\n]+ warnings [^\n]+ ; \n ) ) in Dancer2.pm for Dancer2
# package Dancer2;
# $Dancer2::VERSION = '0.204004';
# # ABSTRACT: Lightweight yet powerful web application framework
# 
# use strict;
# use warnings;
# use List::Util 'first';
# use Module::Runtime 'use_module';
# use Import::Into;
# use Dancer2::Core;
# use Dancer2::Core::App;
# use Dancer2::Core::Runner;
# use Dancer2::FileUtils;
# 
# our $AUTHORITY = 'SUKRIA';
# 
# sub VERSION { shift->SUPER::VERSION(@_) || '0.000000_000' }
# 
# our $runner;
# 
# sub runner   {$runner}
# sub psgi_app { shift->runner->psgi_app(@_) }
# 
# sub import {
#     my ($class,  @args)   = @_;
#     my ($caller, $script) = caller;
# 
#     my @final_args;
#     my $clean_import;
#     foreach my $arg (@args) {
# 
#         # ignore, no longer necessary
#         # in the future these will warn as deprecated
#         grep +($arg eq $_), qw<:script :syntax :tests>
#           and next;
# 
#         if ($arg eq ':nopragmas') {
#             $clean_import++;
#             next;
#         }
# 
#         if (substr($arg, 0, 1) eq '!') {
#             push @final_args, $arg, 1;
#         }
#         else {
#             push @final_args, $arg;
#         }
#     }
# 
#     $clean_import
#       or $_->import::into($caller)
#       for qw<strict warnings utf8>;
# 
#     scalar @final_args % 2
#       and die q{parameters must be key/value pairs or '!keyword'};
# 
#     my %final_args = @final_args;
# 
#     my $appname = delete $final_args{appname};
#     $appname ||= $caller;
# 
#     # never instantiated the runner, should do it now
#     if (not defined $runner) {
#         $runner = Dancer2::Core::Runner->new();
#     }
# 
#     # Search through registered apps, creating a new app object
#     # if we do not find one with the same name.
#     my $app;
#     ($app) = first { $_->name eq $appname } @{$runner->apps};
# 
#     if (!$app) {
# 
#         # populating with the server's postponed hooks in advance
#         $app = Dancer2::Core::App->new(
#             name            => $appname,
#             caller          => $script,
#             environment     => $runner->environment,
#             postponed_hooks => $runner->postponed_hooks->{$appname} || {},
#         );
# 
#         # register the app within the runner instance
#         $runner->register_application($app);
#     }
# 
#     _set_import_method_to_caller($caller);
# 
#     # use config dsl class, must extend Dancer2::Core::DSL
#     my $config_dsl = $app->setting('dsl_class') || 'Dancer2::Core::DSL';
#     $final_args{dsl} ||= $config_dsl;
# 
#     # load the DSL, defaulting to Dancer2::Core::DSL
#     my $dsl = use_module($final_args{dsl})->new(app => $app);
#     $dsl->export_symbols_to($caller, \%final_args);
# }
# 
# sub _set_import_method_to_caller {
#     my ($caller) = @_;
# 
#     my $import = sub {
#         my ($self, %options) = @_;
# 
#         my $with = $options{with};
#         for my $key (keys %$with) {
#             $self->dancer_app->setting($key => $with->{$key});
#         }
#     };
# 
#     {
#         ## no critic
#         no strict 'refs';
#         no warnings 'redefine';
#         *{"${caller}::import"} = $import;
#     }
# }
# 
# 1;
# 
# __END__
# 
# =pod
# 
# =encoding UTF-8
# 
# =head1 NAME
# 
# Dancer2 - Lightweight yet powerful web application framework
# 
# =head1 VERSION
# 
# version 0.204004
# 
# =head1 DESCRIPTION
# 
# Dancer2 is the new generation of L<Dancer>, the lightweight web-framework for
# Perl. Dancer2 is a complete rewrite based on L<Moo>.
# 
# Dancer2 can optionally use XS modules for speed, but at its core remains
# fatpackable (packable by L<App::FatPacker>) so you could easily deploy Dancer2
# applications on hosts that do not support custom CPAN modules.
# 
# Dancer2 is easy and fun:
# 
#     use Dancer2;
#     get '/' => sub { "Hello World" };
#     dance;
# 
# This is the main module for the Dancer2 distribution. It contains logic for
# creating a new Dancer2 application.
# 
# You are welcome to join our mailing list.
# For subscription information, mail address and archives see
# L<http://lists.preshweb.co.uk/mailman/listinfo/dancer-users>.
# 
# We are also on IRC: #dancer on irc.perl.org.
# 
# =head2 Documentation Index
# 
# Documentation on Dancer2 is split into several manpages. Below is a
# complete outline on where to go for help.
# 
# =over 4
# 
# =item * Dancer2 Tutorial
# 
# If you are new to the Dancer approach, you should start by reading
# our L<Dancer2::Tutorial>.
# 
# =item * Dancer2 Manual
# 
# L<Dancer2::Manual> is the reference for Dancer2. Here you will find
# information on the concepts of Dancer2 application development and
# a comprehensive reference to the Dancer2 domain specific
# language.
# 
# =item * Dancer2 Keywords
# 
# The keywords for Dancer2 can be found under L<DSL Keywords|Dancer2::Manual/DSL KEYWORDS>.
# 
# =item * Dancer2 Deployment
# 
# For configuration examples of different deployment solutions involving
# Dancer2 and Plack, refer to L<Dancer2::Manual::Deployment>.
# 
# =item * Dancer2 Cookbook
# 
# Specific examples of code for real-life problems and some 'tricks' for
# applications in Dancer can be found in L<Dancer2::Cookbook>
# 
# =item * Dancer2 Config
# 
# For configuration file details refer to L<Dancer2::Config>. It is a
# complete list of all configuration options.
# 
# =item * Dancer2 Plugins
# 
# Refer to L<Dancer2::Plugins> for a partial list of available Dancer2
# plugins. Note that although we try to keep this list up to date we
# expect plugin authors to tell us about new modules.
# 
# For information on how to author a plugin, see L<Dancer2::Plugin/Writing the plugin>.
# 
# =item * Dancer2 Migration guide
# 
# L<Dancer2::Manual::Migration> provides the most up-to-date instruction on
# how to convert a Dancer (1) based application to Dancer2.
# 
# =back
# 
# =head1 FUNCTIONS
# 
# =head2 my $runner=runner();
# 
# Returns the current runner. It is of type L<Dancer2::Core::Runner>.
# 
# =head1 AUTHORS
# 
# =head2 CORE DEVELOPERS
# 
#     Alberto Simões
#     Alexis Sukrieh
#     Damien Krotkine
#     David Precious
#     Franck Cuny
#     Jason A. Crome
#     Mickey Nasriachi
#     Peter Mottram (SysPete)
#     Russell Jenkins
#     Sawyer X
#     Stefan Hornburg (Racke)
#     Steven Humphrey
#     Yanick Champoux
# 
# =head2 CORE DEVELOPERS EMERITUS
# 
#     David Golden
# 
# =head2 CONTRIBUTORS
# 
#     A. Sinan Unur
#     Ahmad M. Zawawi
#     Alex Beamish
#     Alexander Karelas
#     Alexandr Ciornii
#     Andrew Beverley
#     Andrew Grangaard
#     Andrew Inishev
#     Andrew Solomon
#     Andy Jack
#     Ashvini V
#     B10m
#     Bas Bloemsaat
#     baynes
#     Ben Hutton
#     biafra
#     Blabos de Blebe
#     Breno G. de Oliveira
#     cdmalon
#     Celogeek
#     Cesare Gargano
#     Charlie Gonzalez
#     chenchen000
#     Chi Trinh
#     Christian Walde
#     Colin Kuskie
#     cym0n
#     Dale Gallagher
#     Daniel Muey
#     Daniel Perrett
#     David Steinbrunner
#     David Zurborg
#     Davs
#     Dennis Lichtenthäler
#     Dinis Rebolo
#     dtcyganov
#     Erik Smit
#     Fayland Lam
#     Gabor Szabo
#     geistteufel
#     Gideon D'souza
#     Graham Knop
#     Gregor Herrmann
#     Grzegorz Rożniecki
#     Hobbestigrou
#     Hunter McMillen
#     Ivan Bessarabov
#     Ivan Kruglov
#     JaHIY
#     Jakob Voss
#     James Aitken
#     James Raspass
#     James McCoy
#     Jason Lewis
#     Javier Rojas
#     Jean Stebens
#     Jens Rehsack
#     Joel Berger
#     Jonathan Scott Duff
#     Julien Fiegehenn
#     Julio Fraire
#     Kaitlyn Parkhurst (SYMKAT)
#     kbeyazli
#     Keith Broughton
#     lbeesley
#     Lennart Hengstmengel
#     Ludovic Tolhurst-Cleaver
#     Mario Zieschang
#     Mark A. Stratman
#     Masaaki Saito
#     Mateu X Hunter
#     Matt Phillips
#     Matt S Trout
#     Maurice
#     Menno Blom
#     Michael Kröll
#     Michał Wojciechowski
#     Mohammad S Anwar
#     mokko
#     Nick Patch
#     Nick Tonkin
#     Nikita K
#     Nuno Carvalho
#     Olaf Alders
#     Olivier Mengué
#     Omar M. Othman
#     pants
#     Patrick Zimmermann
#     Pau Amma
#     Paul Cochrane
#     Pedro Bruno
#     Pedro Melo
#     Philippe Bricout
#     Ricardo Signes
#     Rick Yakubowski
#     Ruben Amortegui
#     sakshee3
#     Sam Kington
#     Samit Badle
#     Shlomi Fish
#     simbabque
#     Slava Goltser
#     Snigdha
#     Tatsuhiko Miyagawa
#     Tina Müller
#     Tom Hukins
#     Upasana Shukla
#     Vernon Lyon
#     Victor Adam
#     Vince Willems
#     Vincent Bachelier
#     Yves Orton
# 
# =head1 AUTHOR
# 
# Dancer Core Developers
# 
# =head1 COPYRIGHT AND LICENSE
# 
# This software is copyright (c) 2016 by Alexis Sukrieh.
# 
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
# 
# =cut
# 
#  at /tmp/Mgba2IxIGN/thwart_Dancer2.pm line 20.
# BEGIN failed--compilation aborted at /tmp/Mgba2IxIGN/thwart_Dancer2.pm line 20.
# '
#     doesn't match '(?^msx:^ Useless [^\n]+ void \s context [^\n]+ $)'

#   Failed test 'Dancer2 imported strict'
#   at t/thwart.t line 144.
#                   'Couldn't find a call to (?^x: ( import::into [^\n]+ warnings [^\n]+ ; \n ) ) in Dancer2.pm for Dancer2
# package Dancer2;
# $Dancer2::VERSION = '0.204004';
# # ABSTRACT: Lightweight yet powerful web application framework
# 
# use strict;
# use warnings;
# use List::Util 'first';
# use Module::Runtime 'use_module';
# use Import::Into;
# use Dancer2::Core;
# use Dancer2::Core::App;
# use Dancer2::Core::Runner;
# use Dancer2::FileUtils;
# 
# our $AUTHORITY = 'SUKRIA';
# 
# sub VERSION { shift->SUPER::VERSION(@_) || '0.000000_000' }
# 
# our $runner;
# 
# sub runner   {$runner}
# sub psgi_app { shift->runner->psgi_app(@_) }
# 
# sub import {
#     my ($class,  @args)   = @_;
#     my ($caller, $script) = caller;
# 
#     my @final_args;
#     my $clean_import;
#     foreach my $arg (@args) {
# 
#         # ignore, no longer necessary
#         # in the future these will warn as deprecated
#         grep +($arg eq $_), qw<:script :syntax :tests>
#           and next;
# 
#         if ($arg eq ':nopragmas') {
#             $clean_import++;
#             next;
#         }
# 
#         if (substr($arg, 0, 1) eq '!') {
#             push @final_args, $arg, 1;
#         }
#         else {
#             push @final_args, $arg;
#         }
#     }
# 
#     $clean_import
#       or $_->import::into($caller)
#       for qw<strict warnings utf8>;
# 
#     scalar @final_args % 2
#       and die q{parameters must be key/value pairs or '!keyword'};
# 
#     my %final_args = @final_args;
# 
#     my $appname = delete $final_args{appname};
#     $appname ||= $caller;
# 
#     # never instantiated the runner, should do it now
#     if (not defined $runner) {
#         $runner = Dancer2::Core::Runner->new();
#     }
# 
#     # Search through registered apps, creating a new app object
#     # if we do not find one with the same name.
#     my $app;
#     ($app) = first { $_->name eq $appname } @{$runner->apps};
# 
#     if (!$app) {
# 
#         # populating with the server's postponed hooks in advance
#         $app = Dancer2::Core::App->new(
#             name            => $appname,
#             caller          => $script,
#             environment     => $runner->environment,
#             postponed_hooks => $runner->postponed_hooks->{$appname} || {},
#         );
# 
#         # register the app within the runner instance
#         $runner->register_application($app);
#     }
# 
#     _set_import_method_to_caller($caller);
# 
#     # use config dsl class, must extend Dancer2::Core::DSL
#     my $config_dsl = $app->setting('dsl_class') || 'Dancer2::Core::DSL';
#     $final_args{dsl} ||= $config_dsl;
# 
#     # load the DSL, defaulting to Dancer2::Core::DSL
#     my $dsl = use_module($final_args{dsl})->new(app => $app);
#     $dsl->export_symbols_to($caller, \%final_args);
# }
# 
# sub _set_import_method_to_caller {
#     my ($caller) = @_;
# 
#     my $import = sub {
#         my ($self, %options) = @_;
# 
#         my $with = $options{with};
#         for my $key (keys %$with) {
#             $self->dancer_app->setting($key => $with->{$key});
#         }
#     };
# 
#     {
#         ## no critic
#         no strict 'refs';
#         no warnings 'redefine';
#         *{"${caller}::import"} = $import;
#     }
# }
# 
# 1;
# 
# __END__
# 
# =pod
# 
# =encoding UTF-8
# 
# =head1 NAME
# 
# Dancer2 - Lightweight yet powerful web application framework
# 
# =head1 VERSION
# 
# version 0.204004
# 
# =head1 DESCRIPTION
# 
# Dancer2 is the new generation of L<Dancer>, the lightweight web-framework for
# Perl. Dancer2 is a complete rewrite based on L<Moo>.
# 
# Dancer2 can optionally use XS modules for speed, but at its core remains
# fatpackable (packable by L<App::FatPacker>) so you could easily deploy Dancer2
# applications on hosts that do not support custom CPAN modules.
# 
# Dancer2 is easy and fun:
# 
#     use Dancer2;
#     get '/' => sub { "Hello World" };
#     dance;
# 
# This is the main module for the Dancer2 distribution. It contains logic for
# creating a new Dancer2 application.
# 
# You are welcome to join our mailing list.
# For subscription information, mail address and archives see
# L<http://lists.preshweb.co.uk/mailman/listinfo/dancer-users>.
# 
# We are also on IRC: #dancer on irc.perl.org.
# 
# =head2 Documentation Index
# 
# Documentation on Dancer2 is split into several manpages. Below is a
# complete outline on where to go for help.
# 
# =over 4
# 
# =item * Dancer2 Tutorial
# 
# If you are new to the Dancer approach, you should start by reading
# our L<Dancer2::Tutorial>.
# 
# =item * Dancer2 Manual
# 
# L<Dancer2::Manual> is the reference for Dancer2. Here you will find
# information on the concepts of Dancer2 application development and
# a comprehensive reference to the Dancer2 domain specific
# language.
# 
# =item * Dancer2 Keywords
# 
# The keywords for Dancer2 can be found under L<DSL Keywords|Dancer2::Manual/DSL KEYWORDS>.
# 
# =item * Dancer2 Deployment
# 
# For configuration examples of different deployment solutions involving
# Dancer2 and Plack, refer to L<Dancer2::Manual::Deployment>.
# 
# =item * Dancer2 Cookbook
# 
# Specific examples of code for real-life problems and some 'tricks' for
# applications in Dancer can be found in L<Dancer2::Cookbook>
# 
# =item * Dancer2 Config
# 
# For configuration file details refer to L<Dancer2::Config>. It is a
# complete list of all configuration options.
# 
# =item * Dancer2 Plugins
# 
# Refer to L<Dancer2::Plugins> for a partial list of available Dancer2
# plugins. Note that although we try to keep this list up to date we
# expect plugin authors to tell us about new modules.
# 
# For information on how to author a plugin, see L<Dancer2::Plugin/Writing the plugin>.
# 
# =item * Dancer2 Migration guide
# 
# L<Dancer2::Manual::Migration> provides the most up-to-date instruction on
# how to convert a Dancer (1) based application to Dancer2.
# 
# =back
# 
# =head1 FUNCTIONS
# 
# =head2 my $runner=runner();
# 
# Returns the current runner. It is of type L<Dancer2::Core::Runner>.
# 
# =head1 AUTHORS
# 
# =head2 CORE DEVELOPERS
# 
#     Alberto Simões
#     Alexis Sukrieh
#     Damien Krotkine
#     David Precious
#     Franck Cuny
#     Jason A. Crome
#     Mickey Nasriachi
#     Peter Mottram (SysPete)
#     Russell Jenkins
#     Sawyer X
#     Stefan Hornburg (Racke)
#     Steven Humphrey
#     Yanick Champoux
# 
# =head2 CORE DEVELOPERS EMERITUS
# 
#     David Golden
# 
# =head2 CONTRIBUTORS
# 
#     A. Sinan Unur
#     Ahmad M. Zawawi
#     Alex Beamish
#     Alexander Karelas
#     Alexandr Ciornii
#     Andrew Beverley
#     Andrew Grangaard
#     Andrew Inishev
#     Andrew Solomon
#     Andy Jack
#     Ashvini V
#     B10m
#     Bas Bloemsaat
#     baynes
#     Ben Hutton
#     biafra
#     Blabos de Blebe
#     Breno G. de Oliveira
#     cdmalon
#     Celogeek
#     Cesare Gargano
#     Charlie Gonzalez
#     chenchen000
#     Chi Trinh
#     Christian Walde
#     Colin Kuskie
#     cym0n
#     Dale Gallagher
#     Daniel Muey
#     Daniel Perrett
#     David Steinbrunner
#     David Zurborg
#     Davs
#     Dennis Lichtenthäler
#     Dinis Rebolo
#     dtcyganov
#     Erik Smit
#     Fayland Lam
#     Gabor Szabo
#     geistteufel
#     Gideon D'souza
#     Graham Knop
#     Gregor Herrmann
#     Grzegorz Rożniecki
#     Hobbestigrou
#     Hunter McMillen
#     Ivan Bessarabov
#     Ivan Kruglov
#     JaHIY
#     Jakob Voss
#     James Aitken
#     James Raspass
#     James McCoy
#     Jason Lewis
#     Javier Rojas
#     Jean Stebens
#     Jens Rehsack
#     Joel Berger
#     Jonathan Scott Duff
#     Julien Fiegehenn
#     Julio Fraire
#     Kaitlyn Parkhurst (SYMKAT)
#     kbeyazli
#     Keith Broughton
#     lbeesley
#     Lennart Hengstmengel
#     Ludovic Tolhurst-Cleaver
#     Mario Zieschang
#     Mark A. Stratman
#     Masaaki Saito
#     Mateu X Hunter
#     Matt Phillips
#     Matt S Trout
#     Maurice
#     Menno Blom
#     Michael Kröll
#     Michał Wojciechowski
#     Mohammad S Anwar
#     mokko
#     Nick Patch
#     Nick Tonkin
#     Nikita K
#     Nuno Carvalho
#     Olaf Alders
#     Olivier Mengué
#     Omar M. Othman
#     pants
#     Patrick Zimmermann
#     Pau Amma
#     Paul Cochrane
#     Pedro Bruno
#     Pedro Melo
#     Philippe Bricout
#     Ricardo Signes
#     Rick Yakubowski
#     Ruben Amortegui
#     sakshee3
#     Sam Kington
#     Samit Badle
#     Shlomi Fish
#     simbabque
#     Slava Goltser
#     Snigdha
#     Tatsuhiko Miyagawa
#     Tina Müller
#     Tom Hukins
#     Upasana Shukla
#     Vernon Lyon
#     Victor Adam
#     Vince Willems
#     Vincent Bachelier
#     Yves Orton
# 
# =head1 AUTHOR
# 
# Dancer Core Developers
# 
# =head1 COPYRIGHT AND LICENSE
# 
# This software is copyright (c) 2016 by Alexis Sukrieh.
# 
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
# 
# =cut
# 
#  at /tmp/Mgba2IxIGN/thwart_Dancer2.pm line 20.
# BEGIN failed--compilation aborted at /tmp/Mgba2IxIGN/thwart_Dancer2.pm line 20.
# '
#     doesn't match '(?^msx:^ Can't \s use \s string [^\n]+ SCALAR \s ref [^\n]+ $)'
# Looks like you failed 3 tests of 36.
t/thwart.t ................. 
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/36 subtests 
	(less 1 skipped subtest: 32 okay)
t/vanilla.t ................ ok
t/warnings.t ............... ok

Test Summary Report
-------------------
t/thwart.t               (Wstat: 768 Tests: 36 Failed: 3)
  Failed tests:  33-35
  Non-zero exit status: 3
Files=10, Tests=1935,  2 wallclock secs ( 0.07 usr  0.11 sys +  1.27 cusr  0.32 csys =  1.77 CPU)
Result: FAIL
Failed 1/10 test programs. 3/1935 subtests failed.
Makefile:886: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need  Have    
    ------------------- ----- --------
    Carp                0     1.42    
    File::Spec          0     3.66    
    perl                5.008 5.025010
    strict              0     1.11    
    warnings            0     1.37    

build_requires:

    Module              Need  Have    
    ------------------- ----- --------
    English             0     1.10    
    Exporter            0     5.72    
    ExtUtils::MakeMaker 0     7.24    
    File::Temp          0     0.2304  
    IPC::Open3          0     1.20    
    lib::abs            0     0.93    
    parent              0     0.236   
    Symbol              0     1.08    
    Test::Fatal         0     0.014   
    Test::More          0     1.302075
    Test::Pod           0     1.51    
    Test::Pod::Coverage 1.08  1.10    

configure_requires:

    Module              Need  Have    
    ------------------- ----- --------
    ExtUtils::MakeMaker 0     7.24    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = C
    PATH = /home/sand/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/perl/bin:/usr/X11/bin:/sbin:/usr/sbin
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 15291
    PERL5_CPAN_IS_RUNNING = 15291
    PERL_CANARY_STABILITY_NOPROMPT = 1
    PERL_MM_USE_DEFAULT = 1
    SHELL = /usr/bin/zsh
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /tmp/basesmoker-reloperl-YYmt/bin/perl
    $UID/$EUID = 1005 / 1005
    $GID = 1005 1005
    $EGID = 1005 1005

Perl module toolchain versions installed:

    Module              Have      
    ------------------- ----------
    CPAN                2.16      
    CPAN::Meta          2.150010  
    Cwd                 3.66      
    ExtUtils::CBuilder  0.280225  
    ExtUtils::Command   7.24      
    ExtUtils::Install   2.04      
    ExtUtils::MakeMaker 7.24      
    ExtUtils::Manifest  1.70      
    ExtUtils::ParseXS   3.33      
    File::Spec          3.66      
    JSON                2.90      
    JSON::PP            2.27400_02
    Module::Build       0.4220    
    Module::Signature   0.81      
    Parse::CPAN::Meta   2.150010  
    Test::Harness       3.36_01   
    Test::More          1.302075  
    YAML                1.21      
    YAML::Syck          1.29      
    version             0.9917    


--

Summary of my perl5 (revision 5 version 25 subversion 10) configuration:
  Commit id: 21921336d307f4b7bf907befab709a9d086d2d7a
  Platform:
    osname=linux
    osvers=4.8.0-2-amd64
    archname=x86_64-linux-thread-multi
    uname='linux k93msid 4.8.0-2-amd64 #1 smp debian 4.8.11-1 (2016-12-02) x86_64 gnulinux '
    config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.25.9-48-g21921336d3/f11c -Dmyhostname=k93msid -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat -Duseithreads -Uuselongdouble -DDEBUGGING=-g'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-O2 -g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='6.2.1 20161124'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.24.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.24'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_IMPLICIT_CONTEXT
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
  Built under linux
  Compiled at Jan 26 2017 19:47:31
  %ENV:
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="15291"
    PERL5_CPAN_IS_RUNNING="15291"
    PERL_CANARY_STABILITY_NOPROMPT="1"
    PERL_MM_USE_DEFAULT="1"
  @INC:
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.25.9-48-g21921336d3/f11c/lib/site_perl/5.25.10/x86_64-linux-thread-multi
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.25.9-48-g21921336d3/f11c/lib/site_perl/5.25.10
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.25.9-48-g21921336d3/f11c/lib/5.25.10/x86_64-linux-thread-multi
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.25.9-48-g21921336d3/f11c/lib/5.25.10
    .