print "ok ",$i++," - require v5 ignores sub named v5\n";
eval { require 10.0.2; };
-print "# $@\nnot " unless $@ =~ /^Perl v10\.0\.2 required/;
+print "# $@\nnot " unless $@ =~ /^\QPerl v10.0.2 required\E/;
print "ok ",$i++," - require 10.0.2\n";
my $ver = 5.005_63;
# check inaccurate fp
$ver = 10.2;
eval { require $ver; };
-print "# $@\nnot " unless $@ =~ /^Perl v10\.200.0 required/;
+print "# $@\nnot " unless $@ =~ /^\QPerl v10.200.0 required\E/;
print "ok ",$i++," - require 10.2\n";
$ver = 10.000_02;
eval { require $ver; };
-print "# $@\nnot " unless $@ =~ /^Perl v10\.0\.20 required/;
+print "# $@\nnot " unless $@ =~ /^\QPerl v10.0.20 required\E/;
print "ok ",$i++," - require 10.000_02\n";
print "not " unless 5.5.1 gt v5.5;
do_require "1)\n";
# bison says 'parse error' instead of 'syntax error',
# various yaccs may or may not capitalize 'syntax'.
-print "# $@\nnot " unless $@ =~ /(syntax|parse) error/mi;
+print "# $@\nnot " unless $@ =~ /(?:syntax|parse) error/mi;
print "ok ",$i++," - syntax error\n";
# previous failure cached in %INC
is ($@, '');
eval q{ use 10.0.2; };
-like ($@, qr/^Perl v10\.0\.2 required/);
+like ($@, qr/^\QPerl v10.0.2 required\E/);
eval "use 5.000"; # implicit semicolon
is ($@, '');
is ($@, '');
eval "use 6.000;";
-like ($@, qr/Perl v6\.0\.0 required--this is only \Q$^V\E, stopped/);
+like ($@, qr/\QPerl v6.0.0 required--this is only $^V, stopped\E/);
eval "no 6.000;";
is ($@, '');
eval "no 5.000;";
-like ($@, qr/Perls since v5\.0\.0 too modern--this is \Q$^V\E, stopped/);
+like ($@, qr/\QPerls since v5.0.0 too modern--this is $^V, stopped\E/);
eval "use 5.6;";
-like ($@, qr/Perl v5\.600\.0 required \(did you mean v5\.6\.0\?\)--this is only \Q$^V\E, stopped/);
+like ($@, qr/\QPerl v5.600.0 required (did you mean v5.6.0?)--this is only $^V, stopped\E/);
eval "use 5.8;";
-like ($@, qr/Perl v5\.800\.0 required \(did you mean v5\.8\.0\?\)--this is only \Q$^V\E, stopped/);
+like ($@, qr/\QPerl v5.800.0 required (did you mean v5.8.0?)--this is only $^V, stopped\E/);
eval "use 5.9;";
-like ($@, qr/Perl v5\.900\.0 required \(did you mean v5\.9\.0\?\)--this is only \Q$^V\E, stopped/);
+like ($@, qr/\QPerl v5.900.0 required (did you mean v5.9.0?)--this is only $^V, stopped\E/);
eval "use 5.10;";
-like ($@, qr/Perl v5\.100\.0 required \(did you mean v5\.10\.0\?\)--this is only \Q$^V\E, stopped/);
+like ($@, qr/\QPerl v5.100.0 required (did you mean v5.10.0?)--this is only $^V, stopped\E/);
eval "use 5.11;";
-like ($@, qr/Perl v5\.110\.0 required \(did you mean v5\.11\.0\?\)--this is only \Q$^V\E, stopped/);
+like ($@, qr/\QPerl v5.110.0 required (did you mean v5.11.0?)--this is only $^V, stopped\E/);
eval sprintf "use %.6f;", $];
is ($@, '');
is ($@, '');
eval sprintf("use %.6f;", $] + 1);
-like ($@, qr/Perl v6.\d+.\d+ required--this is only \Q$^V\E, stopped/);
+like ($@, qr/Perl v6\.\d+\.\d+ required--this is only \Q$^V\E, stopped/a);
eval sprintf "use %.6f;", $] + 0.00001;
-like ($@, qr/Perl v5.\d+.\d+ required--this is only \Q$^V\E, stopped/);
+like ($@, qr/Perl v5\.\d+\.\d+ required--this is only \Q$^V\E, stopped/a);
# check that "use 5.11.0" (and higher) loads strictures
eval 'use 5.11.0; ${"foo"} = "bar";';
-like ($@, qr/Can't use string \("foo"\) as a SCALAR ref while "strict refs" in use/);
+like ($@, qr/\QCan't use string ("foo") as a SCALAR ref while "strict refs" in use\E/);
# but that they can be disabled
eval 'use 5.11.0; no strict "refs"; ${"foo"} = "bar";';
is ($@, "");
is ($@, '');
eval "use test_use v100.105";
- like ($@, qr/test_use version v100.105.0 required--this is only version v35\.360\.0/);
+ like ($@, qr/\Qtest_use version v100.105.0 required--this is only version v35.360.0\E/);
eval "use test_use 33.55";
is ($@, '');
eval "use test_use 100.105";
- like ($@, qr/test_use version 100.105 required--this is only version 35.36/);
+ like ($@, qr/\Qtest_use version 100.105 required--this is only version 35.36\E/);
local $test_use::VERSION = '35.36';
eval "use test_use v33.55";
like ($@, '');
eval "use test_use v100.105";
- like ($@, qr/test_use version v100.105.0 required--this is only version v35\.360\.0/);
+ like ($@, qr/\Qtest_use version v100.105.0 required--this is only version v35.360.0\E/);
eval "use test_use 33.55";
is ($@, '');
eval "use test_use 100.105";
- like ($@, qr/test_use version 100.105 required--this is only version 35.36/);
+ like ($@, qr/\Qtest_use version 100.105 required--this is only version 35.36\E/);
local $test_use::VERSION = v35.36;
eval "use test_use v33.55";
is ($@, '');
eval "use test_use v100.105";
- like ($@, qr/test_use version v100.105.0 required--this is only version v35\.36\.0/);
+ like ($@, qr/\Qtest_use version v100.105.0 required--this is only version v35.36.0\E/);
eval "use test_use 33.55";
is ($@, '');
eval "use test_use 100.105";
- like ($@, qr/test_use version 100.105 required--this is only version v35.36/);
+ like ($@, qr/\Qtest_use version 100.105 required--this is only version v35.36\E/);
}
# Check that a .pm file with no package or VERSION doesn't core.
# (git commit 2658f4d9934aba5f8b23afcc078dc12b3a40223)
eval "use test_use_14937 3";
- like ($@, qr/^test_use_14937 defines neither package nor VERSION--version check failed at/);
+ like ($@, qr/^\Qtest_use_14937 defines neither package nor VERSION--version check failed at\E/);
}
my @ver = split /\./, sprintf "%vd", $^V;
if ($index > 0) {
# The future
like ($@,
- qr/Perl $v_version required--this is only \Q$^V\E, stopped/,
+ qr/\QPerl $v_version required--this is only $^V, stopped\E/,
"use $version");
} else {
# The present or past
if ($index <= 0) {
# The present or past
like ($@,
- qr/Perls since $v_version too modern--this is \Q$^V\E, stopped/,
+ qr/\QPerls since $v_version too modern--this is $^V, stopped\E/,
"no $version");
} else {
# future