For question2, try changing:
sub {
my $tags = shift;
my ($field_name) = $DB->table('table_name')->select({'Username' => $tags->{Username} }, ['field_name'])->fetchrow_array();
return $field_name;
}
to
sub {
my $tags = shift;
$tags->{new_tag} = $field_name = $DB->table('table_name')->select({'Username' => $tags->{Username} }, ['field_name'])->fetchrow_array;
return $tags;
}
sub {
my $tags = shift;
my ($field_name) = $DB->table('table_name')->select({'Username' => $tags->{Username} }, ['field_name'])->fetchrow_array();
return $field_name;
}
to
sub {
my $tags = shift;
$tags->{new_tag} = $field_name = $DB->table('table_name')->select({'Username' => $tags->{Username} }, ['field_name'])->fetchrow_array;
return $tags;
}