BATsh
view release on metacpan or search on metacpan
${VAR#pat}, ${VAR##pat} -- shortest/longest prefix removal
${VAR/pat/rep}, ${VAR//pat/rep} -- first/all substitution
${VAR^^}, ${VAR^}, ${VAR,,}, ${VAR,} -- case conversion
${VAR:N:L}, ${VAR:N} -- substring
${#VAR} -- string length
source / . file
REQUIREMENTS
Perl 5.005_03 or later. Core modules only. No external shell required.
BUGS AND LIMITATIONS
The built-in CMD interpreter does not support:
* "FOR /F" with "usebackq" backtick-quoted commands on Windows (the
"cmd /c" subprocess path is untested on Windows)
* "CHOICE", "TIMEOUT", "XCOPY", "ROBOCOPY", "FINDSTR", "SORT", "MORE"
and other external utilities (delegated to the OS)
The built-in SH interpreter does not support:
lib/BATsh.pm view on Meta::CPAN
${VAR/pat/rep}, ${VAR//pat/rep} -- first/all substitution
${VAR^^}, ${VAR^}, ${VAR,,}, ${VAR,} -- case conversion
${VAR:N:L}, ${VAR:N} -- substring
${#VAR} -- string length
source / . file
=head1 REQUIREMENTS
Perl 5.005_03 or later. Core modules only. No external shell required.
=head1 BUGS AND LIMITATIONS
The built-in CMD interpreter does not support:
=over
=item * C<FOR /F> with C<usebackq> backtick-quoted commands on Windows
(the C<cmd /c> subprocess path is untested on Windows)
=item * C<CHOICE>, C<TIMEOUT>, C<XCOPY>, C<ROBOCOPY>, C<FINDSTR>, C<SORT>,
C<MORE> and other external utilities (delegated to the OS)
t/lib/INA_CPAN_Check.pm view on Meta::CPAN
my $pm_ver = _pm_version("$root/$pm_files[0]") if @pm_files;
my $j1 = 1;
if ($meta_yml =~ /^requires:(.*?)(?=^\S)/ms) {
my $block = $1;
while ($block =~ /:\s*([\d._]+)/g) {
if (defined $pm_ver && $1 eq $pm_ver) { $j1 = 0; last }
}
}
ok($j1, 'J - PREREQ_PM: no core dep version equals module VERSION');
# J2: BUGS AND LIMITATIONS has no stale entries
my @stale = exists $opt{j2_stale} ? @{$opt{j2_stale}} : ();
my $bugs_text = '';
if (@pm_files) {
my $pm_text = _slurp("$root/$pm_files[0]");
if ($pm_text =~ /=head1 BUGS AND LIMITATIONS(.*?)^=head1/ms) {
$bugs_text = $1;
}
}
my $j2 = 1;
for my $entry (@stale) {
if (index($bugs_text, $entry) >= 0) { $j2 = 0; last }
}
ok($j2, 'J - BUGS AND LIMITATIONS: no stale removed-feature entries');
# J3+J4: test file plan vs ok-comment count
for my $tf (@t_files) {
my @lines = _slurp_lines("$root/$tf");
my @ok_comments;
my $plan = undef;
for my $line (@lines) {
$line =~ s/\r?\n$//;
push @ok_comments, $1 if $line =~ /^#\s+ok\s+(\d+)\b/;
$plan = $1 if !defined $plan && $line =~ /^1\.\.(\d+)$/;
( run in 1.600 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )