1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#!/usr/bin/perl
use v5.14;
use warnings;
use Test2::V0;
use Syntax::Keyword::Try;
# try can apply loop controls
{
my $count = 0;
LOOP: {
try {
$count++;
redo LOOP if $count < 2;
}
catch ($e) { }
}
is( $count, 2, 'try{redo} works' );
$count = 0;
my $after = 0;
LOOP2: {
try {
last LOOP2;
$after++; # just to put a statement after 'last'
}
catch ($e) { }
$count++;
}
is( $count, 0, 'try{last} works' );
}
# catch can apply loop controls
{
my $count = 0;
LOOP: {
try {
die "oopsie";
}
catch ($e) {
$count++;
redo LOOP if $count < 2;
}
}
is( $count, 2, 'catch{redo} works' );
$count = 0;
LOOP2: {
try {
die "oopsie";
}
catch ($e) {
last LOOP2;
}
$count++;
}
is( $count, 0, 'catch{last} works' );
}
done_testing;
|