BEGIN { for my $nm (qw( io fm cv hv pvlv gv av bm pvmg pvnv pviv rv nv iv pv sv )) { eval <<"B_SUGAR"; =item \L$nm\E( OBJ ) Returns a boolean indicating whether OBJ is an instance of type B::\U$nm\E. This respects any overridden ->isa methods. =cut sub \L$nm\E { my \$op = shift \@_; return blessed(\$op) and \$op->isa('B::\U$nm\E'); } B_SUGAR if ( my $e = $@ ) { die $e; } push @EXPORT_OK, $nm; } } #### use tt ( subs => [qw( io fm cv hv pvlv gv av bm pvmg pvnv pviv rv nv iv pv sv )] ); [% FOREACH sub IN subs %] =item [% sub %]( OBJ ) Returns a boolean indicating whether OBJ is an instance of type B::[% sub %]. This respects any overridden ->isa methods. =cut sub [% sub %] { my $op = shift @_; return blessed($op) and $op->isa('B::[% sub %]'); } [% END %] no tt;