my (@h,@c); push @h, $_->{hour} foreach(@{$data}); # no so great push @c, $_->{count} foreach(@{$data}); # see extremely's comment my $new = [ \@h, \@c ]; $gd = $graph->plot($new); # wrong - see orbital's comment #### BEFORE: AFTER: $VAR1 = [ $VAR1 = [ { [ 'count' => 5, 1, 'hour' => 1 5, }, 2 { ], 'count' => 2, [ 'hour' => 5 5, }, 2, { 8 'count' => 8, ] 'hour' => 2 ]; } ];