in reply to Re^3: Find a Position and Insert Text
in thread Find a Position and Insert Text
Thank you for your time and effort with your reply
I really appreciate it.
Below is just your code with some comments/questions etc.
Would appreciate your comments at some stage.
I am really still learning Perl.
use warnings; use strict; use JSON; use Data::Dumper; my $original = '{"OWNER":"KeyProjects","age1":null,"ht1":null}';
#Literal entry.
my $desired = '{"OWNER":"KeyProjects","scheduled":{"age1":null,"ht1":null}}';#Literal entry.
my $data = decode_json($original); print Dumper $original; print Dumper $desired; print Dumper $data; for my $key ( keys % {$data} )
#Converts $data into a hash and cycles through it.
{ print "Found a key: $key", $/; if ( $key =~ /\A (?: age\d+ | ht\d+ ) \z/x ) { print " -> It matches our regular expression\n"; print " -> Deleting it from data structure\n"; my $value = delete $data->{$key};
#Does this delete the pair, the value, or what? See below.
print Dumper $key;
#Looks like nothing is deleted.
print Dumper $value;
#Looks like nothing is deleted.
print " -> Putting it back under sub-structure with key 'sche +duled'\n"; $data->{scheduled}{$key} = $value;
#I should understand this step but I don't really know what each aspect of this line is doing.
print Dumper $key; print Dumper $value; print Dumper $data; } else { print " -> It's fine where it is, no action taken\n"; print Dumper $key; print Dumper $data; } } print encode_json( $data ), $/; use Test::More; my $desired_data = decode_json( $desired ); is_deeply( $desired_data, $data, "Data structures match" ); done_testing(1);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Find a Position and Insert Text
by Your Mother (Archbishop) on Mar 20, 2016 at 19:20 UTC | |
by jlb333333 (Novice) on Mar 21, 2016 at 19:21 UTC | |
by Your Mother (Archbishop) on Mar 21, 2016 at 21:07 UTC |