Dios
view release on metacpan or search on metacpan
lib/Dios/Types.pm view on Meta::CPAN
$sub_name =~ s/[:_]++/ /g;
$constraint_desc = $sub_name;
}
}
# Deparse the constraint sub (if necessary and possible)...
if (!length($constraint_desc//q{}) && eval{ require B::Deparse }) {
state $deparser = B::Deparse->new;
my ($hint_bits, $warning_bits) = (caller 0)[8,9];
$deparser->ambient_pragmas(
hint_bits => $hint_bits, warning_bits => $warning_bits, # '$[' => 0 + $[
);
$constraint_desc = $deparser->coderef2text($constraint);
$constraint_desc =~ s{\s*+ BEGIN \s*+ \{ (?&CODE) \}
(?(DEFINE) (?<CODE> [^{}]*+ (\{ (?&CODE) \} [^{}]*+ )*+ ))}{}gxms;
$constraint_desc =~ s{(?: (?:use|no) \s*+ (?: feature | warnings | strict ) | die \s*+ sprintf ) [^;]* ;}{}gxms;
$constraint_desc =~ s{package \s*+ \S+ \s*+ ;}{}gxms;
$constraint_desc =~ s{\s++}{ }g;
}
return $constraint_desc // "$constraint";
}
lib/Dios/Types/Pure.pm view on Meta::CPAN
$sub_name =~ s/[:_]++/ /g;
$constraint_desc = $sub_name;
}
}
# Deparse the constraint sub (if necessary and possible)...
if (!length($constraint_desc//q{}) && eval{ require B::Deparse }) {
state $deparser = B::Deparse->new;
my ($hint_bits, $warning_bits) = (caller 0)[8,9];
$deparser->ambient_pragmas(
hint_bits => $hint_bits, warning_bits => $warning_bits, # '$[' => 0 + $[
);
$constraint_desc = $deparser->coderef2text($constraint);
$constraint_desc =~ s{\s*+ BEGIN \s*+ \{ (?&CODE) \}
(?(DEFINE) (?<CODE> [^{}]*+ (\{ (?&CODE) \} [^{}]*+ )*+ ))}{}gxms;
$constraint_desc =~ s{(?: (?:use|no) \s*+ (?: feature | warnings | strict ) | die \s*+ sprintf ) [^;]* ;}{}gxms;
$constraint_desc =~ s{package \s*+ \S+ \s*+ ;}{}gxms;
$constraint_desc =~ s{\s++}{ }g;
}
return $constraint_desc // "$constraint";
}
( run in 0.324 second using v1.01-cache-2.11-cpan-cc502c75498 )