in reply to Re: Pearls (not really) of Perl programming
in thread Pearls (not really) of Perl programming

There's a trick that helps with deep structures:

my $flow_id = $data{partners}{$part_id}{flow}; for my $wfref (@{$data{flows}{$flow_id}}) { #... }

While not necessary here, you can always break things down further:

my $partner = $data{partners}; my $flow_id = $partner->{$part_id}{flow}; my $flows_ref = $data{flows}{$flow_id}}; for my $wfref (@$flows_ref) { #... }

or

my $flow_id = $data{partners}{$part_id}{flow}; my $flows_ref = $data{flows}{$flow_id}}; for my $wfref (@$flows_ref) { #... }

But in this case, I don't see why flows and partners are in the same structure

Change %{$data{flows }} to just %flows. Change %{$data{partners}} to just %partners.