sub TestMCa { my ($test_cat, $rec_cat, $level) = @_; my ($num_m, $buf, $i, $retstat, $master); my (@m); $test_cat .= "."; $rec_cat .= "."; $master = $test_cat; @m = split(/\./, $master); $num_m = @m; $buf = ""; for ($i = 0; $i < $level; $i++) { if ($i >= $num_m) { last; } $buf .= $m[$i] . "."; } if ($rec_cat =~ /^$buf/i) { $retstat = 1; } else { $retstat = 0; } return($retstat); } # end TestMCa sub TestMCb { my ($test_cat, $rec_cat, $level) = @_; my $re = '^' . join('\.' => (split /\./, $test_cat, $level + 1)[0 .. $level - 1]); $re .= $re =~ /\.$/ ? '[^.]' : '(?:[.]|$)'; if ($rec_cat =~ /$re/i) { $retstat = 1; } else { $retstat = 0; } return($retstat); } # end TestMCb