use Net::LDAP; use Net::LDAP::Control::PostRead; use Net::LDAP::Constant qw( LDAP_CONTROL_POSTREAD LDAP_SUCCESS ); $ldap = Net::LDAP->new( "ldap.mydomain.eg" ); $postread = Net::LDAP::Control::PostRead->new( attrs => [ qw/givenName/ ] ); my $mesg = $ldap->modify( "cn=Barbara Jensen, o=University of Michigan, c=US", replace => { givenName => "Babs" }, control => $postread ); if ($mesg->code eq LDAP_SUCCESS) { my ($afterwards) = $mesg->control( LDAP_CONTROL_PREREAD ); my $entry = $afterwards ? $afterwards->entry() : undef; if ($entry) { print "givenName changed to '" . join("', '", $entry->get_value(givenName") . "' to 'Babs'\n"); } }
In modification operations, the "Post-Read request control" indicates to the server that a copy of the modified entry after the update is to be returned. After the successful completion of the operation, the accompanying "Post-Read response control" allows one to retrieve the updated value from the server's response.
One use case of this control may be to obtain values of operational attributes, such as the "entryUUID" and "modifyTimestamp" attributes, updated by the server as part of the update operation.
If absent, all attributes are returned.
Operational attributes may be included in the list by explicitly asking for them or by using special "+" feature (provided the server supports this feature).
In addition to these methods, the control also supports the following method:
The result is either a Net::LDAP::Entry object or undefined.
Please report any bugs, or post any suggestions, to the perl-ldap mailing list <perl-ldap@perl.org>