summaryrefslogtreecommitdiff
path: root/examples/next-in-loop/Error.pm-eval.pl
blob: 87c67f7bc2c858fb855b2957727457caac81153a (plain)
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
#!/usr/bin/perl

use strict;
use warnings;

use Error qw(:try);
use Scalar::Util qw(blessed);

use IO::Handle;

package MyError;

use base 'Error';

package SecondError;

use base 'Error';

package main;

autoflush STDOUT 1;

SHLOMIF_FOREACH:
foreach my $i (1 .. 100)
{
    eval
    {
        if ($i % 10 == 0)
        {
            throw MyError;
        }
    };
    my $E = $@;
    if (blessed($E) && $E->isa('MyError'))
    {
        next SHLOMIF_FOREACH;
    }
    print "$i\n";
}