On Dec 12, 2006, at 12:58 AM, Glenn Lamb wrote:
@members = $entry->get_value("member");
if (@members == 0) {
$first = 0;
while(1) {
$last = $first + $size - 1;
@tmp = $entry->get_value("member;range=${first}-${last}");
@tmp = $entry->get_value("member;range=${first}-*") if @tmp
== 0;
last if @tmp == 0;
push @members, @tmp;
$first += $size;
}
}
If I understand right, the server has returned multiple member
attributes, each with an option like 'range=0-*'. If not, then ignore
the rest of this message :-)
If so, then why not use
my @attr_names = grep { /^member(;range=.*)?$/i } $entry->attributes;
The get the value for each of those, or even
my $href = $entry->get_values('member', alloptions => 1);
This will return a hash reference which will contain all the member
attributes. The keys will be the options (the bit after the ;)
So if you are not bothered about order then
my @members;
if (my $href = $entry->get_values('member', alloptions => 1)) {
foreach my $value (values %$href) {
push @members, ref($value) ? @$value, $value;
}
}
Should work
Graham.