Я думаю, что вы ищете это:
push @{ $jsonStructure->{events} }, {
evid => $evid,
component => $component,
...,
};
, хотя даже это, вероятно, излишне, потому что вы, вероятно, можете сделать что-то вроде:
while (my $row = $dbh->fetchrow_hashref) {
push @{ $jsonStructure->{events} }, $row;
}
, если всеимена столбцов в БД совпадают с именами полей, которые вы хотите в JSON, и вам нужны все столбцы, или:
my @keys = qw(evid component firstTime ...);
while (my $row = $dbh->fetchrow_hashref) {
my %hash;
@hash{@keys} = @$row{@keys};
push @{ $jsonStructure->{events} }, \%hash;
}
, если вам нужны только некоторые столбцы, или:
# DB colname => JSON field name
my %mapping = (
event_id => 'evid',
component => 'component',
first_time => 'firstTime',
...,
);
while (my $row = $dbh->fetchrow_hashref) {
my %hash;
@hash{ values %mapping } = @$row{ keys %mapping };
push @{ $jsonStructure->{events} }, \%hash;
}
для совершенно произвольного отображения.Сила Perl и все такое.:)