205 |
|
|
206 |
sub attr_names { |
sub attr_names { |
207 |
my $self = shift; |
my $self = shift; |
208 |
croak "attr_names return array, not scalar" if (! wantarray); |
return unless ($self->{attrs}); |
209 |
|
#croak "attr_names return array, not scalar" if (! wantarray); |
210 |
return sort keys %{ $self->{attrs} }; |
return sort keys %{ $self->{attrs} }; |
211 |
} |
} |
212 |
|
|
222 |
sub attr { |
sub attr { |
223 |
my $self = shift; |
my $self = shift; |
224 |
my $name = shift; |
my $name = shift; |
225 |
|
return unless (defined($name) && $self->{attrs}); |
226 |
return $self->{'attrs'}->{ $name }; |
return $self->{attrs}->{ $name }; |
227 |
} |
} |
228 |
|
|
229 |
|
|
237 |
|
|
238 |
sub texts { |
sub texts { |
239 |
my $self = shift; |
my $self = shift; |
240 |
confess "texts return array, not scalar" if (! wantarray); |
#confess "texts return array, not scalar" if (! wantarray); |
241 |
return @{ $self->{dtexts} }; |
return @{ $self->{dtexts} } if ($self->{dtexts}); |
242 |
} |
} |
243 |
|
|
244 |
|
|
252 |
|
|
253 |
sub cat_texts { |
sub cat_texts { |
254 |
my $self = shift; |
my $self = shift; |
255 |
return join(' ',@{ $self->{dtexts} }); |
return join(' ',@{ $self->{dtexts} }) if ($self->{dtexts}); |
256 |
} |
} |
257 |
|
|
258 |
|
|
461 |
sub attrs { |
sub attrs { |
462 |
my $self = shift; |
my $self = shift; |
463 |
#croak "attrs return array, not scalar" if (! wantarray); |
#croak "attrs return array, not scalar" if (! wantarray); |
464 |
return @{ $self->{attrs} }; |
return @{ $self->{attrs} } if ($self->{attrs}); |
465 |
} |
} |
466 |
|
|
467 |
|
|