Hi, here's the part of code ($VERSION = "0.9901") from the Schema.pm Module which i just downloaded from theoryx5.uwinnipeg.ca/CPAN/data/perl-ldap/.
---------- [snipp] ------------------------ while (@oc) { my $oc = shift @oc; $done{lc $oc}++ and next; my $elem = $self->objectclass( $oc ) or next; my $res = $elem->{$must_or_may} or next; @res{ @$res } = (); # Add in, getting uniqueness my $sup = $elem->{sup} or next; push @oc, @$sup; } my %unique = map { ($_,$_) } $self->attribute(keys %res); values %unique; } ---------- [snipp] ------------------------ The loop iterates over all the super objectClasses for an object (at least thats what i suggest it's supposed to do). If an objectClass does NOT contain eihter a must or may entry the super class is simply ignored my $res = $elem->{$must_or_may} or next; while the must or may of the super class are taken into account if they are already in the objectClass just inspected. eg. class A: must: a, b may: c, d class B: super of class A must: may: e, f than may(B) returns (c,d,e,f) must(B) returns () Cheers, Matthias Helmling -- Matthias Helmling System Administration LION bioscience AG, Waldhofer Str. 98, D-69123 Heidelberg