use Encode; use JSON; my $d; while() { $d .= decode('utf-8',$_); } my $json = JSON->new()->decode($d); foreach my $event ( @{$json} ) { my $date = $event->{date}; my $place = $event->{place}; my $venue = $event->{venue}; my $tour_name = $event->{tour_name}; $tour_name =~ s/'/''/g; my $orderindex = 1; foreach my $song_title ( @{ $event->{setlist} } ) { $song_title =~ s/'/''/g; print encode('utf-8',sprintf("insert into setlists(list_type, order_index, comments) values(1,%d,'1:[%s]2:[%s]3:[%s]4:[%s]5:[%s]');\n", $orderindex, $song_title, $date, $place, $venue, $tour_name)); $orderindex++; } $orderindex = 1; foreach my $song_title ( @{ $event->{encorelist} } ) { $song_title =~ s/'/''/g; print encode('utf-8',sprintf("insert into setlists(list_type, order_index, comments) values(2,%d,'1:[%s]2:[%s]3:[%s]4:[%s]5:[%s]');\n", $orderindex, $song_title, $date, $place, $venue, $tour_name)); $orderindex++; } $orderindex = 1; foreach my $song_title ( @{ $event->{wencorelist} } ) { $song_title =~ s/'/''/g; print encode('utf-8',sprintf("insert into setlists(list_type, order_index, comments) values(3,%d,'1:[%s]2:[%s]3:[%s]4:[%s]5:[%s]');\n", $orderindex, $song_title, $date, $place, $venue, $tour_name)); $orderindex++; } }