This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update experimental to 0.024 from CPAN
[perl5.git] / cpan / experimental / t / basic.t
index b54bd11..248b56c 100644 (file)
@@ -5,6 +5,8 @@ use warnings;
 
 use Test::More 0.89;
 
+plan skip_all => 'This module is a no-op on perls earlier than 5.010' if "$]" < 5.010000;
+
 local $SIG{__WARN__} = sub { fail("Got unexpected warning"); diag($_[0]) };
 
 if ($] >= 5.010000) {
@@ -21,10 +23,12 @@ if ($] >= 5.010001) {
        use experimental 'switch';
        sub bar { 1 };
        given(1) {
-               whereso (\&bar) {
+               when (\&bar) {
                        pass("bar matches 1");
                }
-               fail("bar matches 1");
+               default {
+                       fail("bar matches 1");
+               }
        }
        1;
 END
@@ -33,8 +37,8 @@ END
 if ($] >= 5.010001) {
        is (eval <<'END', 1, 'smartmatch compiles') or diag $@;
        use experimental 'smartmatch';
-       { package Baz; use overload "~~" => sub { 1 }; }
-       is(1 ~~ bless({}, "Baz"), 1, "is 1");
+       sub baz { 1 };
+       is(1 ~~ \&baz, 1, "is 1");
        1;
 END
 }
@@ -48,7 +52,16 @@ if ($] >= 5.018) {
 END
 }
 
-if ($] >= 5.021005) {
+if ($] >= 5.026000) {
+       is (eval <<'END', 1, 'declared refs compiles') or diag $@;
+       use experimental 'declared_refs';
+       my @b;
+       my \@a = \@b;
+       is(\@a, \@b, '@a and @b are the same after \@a=\@b');
+       1;
+END
+}
+elsif ($] >= 5.021005) {
        is (eval <<'END', 1, 'ref aliasing compiles') or diag $@;
        use experimental 'refaliasing';
        my (@a, @b);