#!perl -T use strict; use warnings; BEGIN { use lib 't'; use MyTestHelper; use Test::More; # check some external dependencies (programs and non # CPAN modules my ($skip,$msg) = MyTestHelper::skip_all(); plan skip_all => $msg if $skip; } our %features = ( A => 72, B => 148, C => 43, D => 34, ); my $number_tests; foreach ( keys %features ) { $number_tests += $features{$_}; } plan tests => $number_tests; use English qw( -no_match_vars ); use Scalar::Util qw/refadr/; use Data::Dumper; use MyModule; my $obj = MyModule->new(); FEATURE: foreach my $feature ( sort keys %features ) { SKIP: { if ( $obj->does_not_like($feature) { skip "Feature not available", $features{$feature}; } # FINALLY, the tests ... } }