Hi list,
could someone help me in understanding what the SampleLDAP.pm perl module do in its search routine?

This is the code:
--------
sub search {
    my $this = shift;
    my ( $base, $scope, $deref, $sizeLim, $timeLim, $filterStr, $attrOnly,
        @attrs )
      = @_;
    print {*STDERR} "====$filterStr====\n";
    $filterStr =~ s/\(|\)//gm;
    $filterStr =~ s/=/: /m;

    my @match_dn = ();
    for my $dn ( keys %{$this} ) {
        if ( $this->{$dn} =~ /$filterStr/imx ) {
            push @match_dn, $dn;
            last if ( scalar @match_dn == $sizeLim );

        }
    }

    my @match_entries = ();

    for my $dn (@match_dn) {
        push @match_entries, $this->{$dn};
    }

    return ( 0, @match_entries );

}
--------

I'm interested in knowing what "keys %{$this}" should contain and why, in trying to use this sample perl module I cannot see any "key" of the array variable $this.

I configured the database in this way:

database        perl
suffix          "dc=perl,dc=com"
perlModulePath  /tmp/appoggio/
perlModule      SampleLDAP


Thanks in advance
Marco