#!/usr/bin/perl use warnings; use strict; use CGI qw/:standard/; use File::Replace qw/replace3/; use JSON::PP qw/encode_json decode_json/; # NOT RECOMMENDED, use an alternative like Mojo instead! my $DATA_FILE = '/path/to/data.json'; my $defaults = decode_json( do { open my $fh, '<', $DATA_FILE or die "$DATA_FILE: $!"; local $/; <$fh> } ); print header; print start_html('Hello, World!'); if ( param('Submit') ) { my (undef,$outfh,$repl) = replace3($DATA_FILE); print $outfh encode_json { name => scalar param('name'), }; $repl->finish; print p( "Form submitted!" ); } print start_form; print div( label({-for=>'name'}, "Your Name"), textfield('name', $defaults->{name}) ); print div( submit('Submit') ); print end_form; print p( a({-href=>url(-absolute=>1)}, 'Reset') ); print end_html;