my
%modules
;
my
$post_diag
;
$modules
{
$_
} =
$_
for
qw(
Carp
Exporter
ExtUtils::MakeMaker
Scope::Upper
Test::Fatal
Test::More
parent
)
;
my
@modules
=
sort
keys
%modules
;
sub
spacer ()
{
diag
''
;
diag
''
;
diag
''
;
}
pass
'okay'
;
my
$max
= 1;
$max
=
$_
>
$max
?
$_
:
$max
for
map
{
length
$_
}
@modules
;
our
$format
=
"%-${max}s %s"
;
spacer;
my
@keys
=
sort
grep
/(MOJO|PERL|\A(LC|HARNESS)_|\A(SHELL|LANG)\Z)/i,
keys
%ENV
;
if
(
@keys
> 0)
{
diag
"$_=$ENV{$_}"
for
@keys
;
if
(
$ENV
{PERL5LIB})
{
spacer;
diag
"PERL5LIB path"
;
diag
$_
for
split
$Config
{path_sep},
$ENV
{PERL5LIB};
}
elsif
(
$ENV
{PERLLIB})
{
spacer;
diag
"PERLLIB path"
;
diag
$_
for
split
$Config
{path_sep},
$ENV
{PERLLIB};
}
spacer;
}
diag
sprintf
$format
,
'perl'
,
"$] $^O $Config{archname}"
;
foreach
my
$module
(
@modules
)
{
my
$pm
=
"$module.pm"
;
$pm
=~ s{::}{/}g;
if
(
eval
{
require
$pm
; 1 })
{
my
$ver
=
eval
{
$module
->VERSION };
$ver
=
'undef'
unless
defined
$ver
;
diag
sprintf
$format
,
$module
,
$ver
;
}
else
{
diag
sprintf
$format
,
$module
,
'-'
;
}
}
if
(
$post_diag
)
{
spacer;
$post_diag
->();
}
spacer;