$app_insert = $dbh->prepare("INSERT INTO bitium_apps(id, app_slug, app_Name, team_id, provider_id, provider_slug, provider_saml, config_saml, config_login, config_url, created_date, status, key_vault, mfa_code, configuration_install) VALUES (?, ?, ?, \"$response\", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?") or die $dbh->errstr; use JSON; my $json=new JSON; my $unjson=$json->allow_nonref->decode($api_results); for my $row (@$unjson) { my @insert; for my $var (qw/.id .slug .name .provider.id .provider.name .provider.capabilities.has_saml .configuration.saml .configuration.login .configuration.url .created_at .status .key_vault .requires_mfa_code .configuration.install_type /){ my $var2=substr($var,1); my @parts=split('\.',$var2); my $base=$row; my $terminal=pop @parts; while (scalar(@parts)>0) { my $subpart=shift @parts; $base=$base->{$subpart}; } push @insert,$base->{$terminal}; } # var $app_insert->execute(@insert[0,1,2,4 .. 15]) or die $app_insert->errstr; } # row