use Cpanel::JSON::XS qw( decode_json encode_json ); use File::Slurper qw( read_binary ); my $watchers_data = decode_json( read_binary( $ARGV[0] ) ); my %watchers_lkup = map { $_->{ externalId } => $_->{ watchers } } @$watchers_data; my $data = decode_json( read_binary( $ARGV[1] ) ); $_->{ watchers } = $watchers_lkup{ $_->{ externalId } } for @$data; print encode_json( $data );