push to both repos on release
[p5sagit/Try-Tiny.git] / t / when.t
CommitLineData
3176feef 1use strict;
f9d19a00 2use warnings;
3176feef 3
4use Test::More;
5
6BEGIN {
b715d61b 7 plan skip_all => 'Perl 5.010 is required' unless "$]" >= '5.010';
82559400 8 plan skip_all => 'Tests skipped on perl 5.27.{7,8,9} when smartmatch behaviour changed' if "$]" >= '5.027007' and "$]" < '5.027010';
c8e3a471 9 plan skip_all => 'given/when have been removed in perl 5.42' if "$]" >= '5.041003';
c6d66f74 10 plan tests => 5;
3176feef 11}
12
01b96275 13use Try::Tiny;
3176feef 14
15use 5.010;
8c34b0ef 16no if "$]" >= 5.017011, warnings => 'experimental::smartmatch';
3176feef 17
18my ( $foo, $bar, $other );
19
20$_ = "magic";
21
22try {
8d2ee831 23 die "foo";
3176feef 24} catch {
25
8d2ee831 26 like( $_, qr/foo/ );
3176feef 27
8d2ee831 28 when (/bar/) { $bar++ };
29 when (/foo/) { $foo++ };
30 default { $other++ };
3176feef 31};
32
33is( $_, "magic", '$_ not clobbered' );
34
35ok( !$bar, "bar didn't match" );
36ok( $foo, "foo matched" );
37ok( !$other, "fallback didn't match" );