#!/usr/bin/perluse strict;
use warnings;
use JSON;
use Data::Dumper;
use Benchmark 'cmpthese';
my $json_text = '[
{
"id" : "1",
"name" : "Name1"
},
{
"id" : "2",
"name" : "Name2"
},
{
"id" : "3",
"name" : "Name3"
}]'
;
#my $json = JSON->new->decode($json_text);
my $json = decode_json($json_text);
print Dumper($json);
sub mapng {
my @names = map { $_->{name} } @{$json};
}
sub modif {
push my @names, $_->{name} for @{$json};
}
sub cycle {
for ( @{$json} ) {
push my @names, $_->{name};
}
}
sub ptext {
my @names = ($_[0] =~ /^\s*+"name" *+: *+"([^"]*+)"/mg);
# print Dumper(@names);
}
#ptext($json_text);
cmpthese(
-1,
{
'mapng' => sub { mapng($json) },
'modif' => sub { modif($json) },
'cycle' => sub { cycle($json) },
'ptext' => sub { ptext($json_text) },
}
);
__END__