use strict; my ($config_dirs) = &read_conf(); my ($dirs) = &search_dirs(); &print(); sub read_conf { my %config_dirs; .... # read the conf file return \%config_dirs; } sub search_dirs { my %dirs; .... # search the dirs return \%dirs; } sub print { foreach (keys %$dirs) { my $no_print = 0; foreach my $skip (keys %$config_dirs) { if (/^$skip/) { $no_print = 1; last; } } print REPORT "$_\n" unless ($no_print == 1); } }