use 5.010; use Data::Dumper; use JSON::MaybeXS qw(encode_json decode_json); $in = "ServerTimeReport.txt"; open(IN,"<$in") or die "Cannot open $in: $!\n"; while() { &procJSON(); } sub procJSON() { my $server_json = '{"datetime":["changed","cmd","delta","end","failed","rc","start","stderr","stderr_lines","stdout","stdout_lines"]}'; my $server = decode_json $server_json; print Dumper $server;