use strict; use warnings; use Dancer; use JSON qw(decode_json); my $foo_info = param('foo_info'); if ( !eval { decode_json($foo_info); 1 } ) { flash error => "Failed" } if ( !exists $foo_info->{foo_total} || !($foo_info->{foo_total} =~ m/^\$\d+\.\d{2}$/)) { error("Invalid or missing foo info"); return 0; }