| Protocol-XMLRPC documentation | Contained in the Protocol-XMLRPC distribution. |
Protocol::XMLRPC::Value::Array - XML-RPC array
my $array = Protocol::XMLRPC::Value::Array->new(1, 2, 3);
my $array = Protocol::XMLRPC::Value::Array->new([1, 2, 3]);
my $array = Protocol::XMLRPC::Value::Array->new([1]);
my $array = Protocol::XMLRPC::Value::Array->new(
[Protocol::XMLRPC::Value::Double->new(1.2)]);
XML-RPC array
data my $data = $array->data;
$data->[0]->value;
Holds elements as objects.
newCreates new Protocol::XMLRPC::Value::Array instance. Elements can be provided as an array or as an array reference.
typeReturns 'array'.
add_data $array->add_data(1);
$array->add_data([1]);
$array->add_data(Protocol::XMLRPC::Value::String->new('foo'));
Adds value to the array. Can be Perl5 scalar or any Protocol::XMLRCP::Value::* instance, including another array.
value my $array = Protocol::XMLRPC::Value::Array->new(1, 2, 3);
my $arrayref = $array->value;
# $arrayref is now [1, 2, 3]
Returns serialized Perl5 array reference.
to_string my $array = Protocol::XMLRPC::Value::Array->new(12);
my $string = $array->to_string;
# <array>
# <data>
# <value><i4>12</i4></value>
# </data>
# </array>'
XML-RPC array string representation.
Viacheslav Tykhanovskyi, vti@cpan.org.
Copyright (C) 2009, Viacheslav Tykhanovskyi.
This program is free software, you can redistribute it and/or modify it under the same terms as Perl 5.10.
| Protocol-XMLRPC documentation | Contained in the Protocol-XMLRPC distribution. |
package Protocol::XMLRPC::Value::Array; use strict; use warnings; use Protocol::XMLRPC::ValueFactory; use overload '""' => sub { shift->to_string }, fallback => 1; sub new { my $class = shift; my @values; if (@_ == 1) { @values = ref($_[0]) eq 'ARRAY' ? @{$_[0]} : ($_[0]); } else { @values = @_; } my $self = {}; bless $self, $class; $self->{data} ||= []; foreach my $value (@values) { $self->add_data($value); } return $self; } sub type {'array'} sub data { defined $_[1] ? $_[0]->{data} = $_[1] : $_[0]->{data} } sub add_data { my $self = shift; my ($param) = @_; my $value = Protocol::XMLRPC::ValueFactory->build($param); return unless $value; push @{$self->data}, $value; } sub value { my $self = shift; return [map { $_->value } @{$self->data}]; } sub to_string { my $self = shift; my $string = '<array><data>'; foreach my $data (@{$self->data}) { my $value = $data->to_string; $string .= "<value>$value</value>"; } $string .= '</data></array>'; return $string; } 1; __END__