my %used; for ( @{ $graph_data->{Edges} } ) { $edges{$_->{in}->[0]} //= {}; $edges{$_->{in}->[0]}->{$_->{in}->[1]} //= []; push( @{ $edges{$_->{in}->[0]}->{$_->{in}->[1]} }, $_->{out} ); $used{$_->{out}} //= 0; $used{$_->{out}}++; if ( grep { $used{$_} > 1 } keys( %used ) ) { die( 'Only one input per node!' ); } } #### my %used; for ( @{ $graph_data->{Edges} } ) { push @{ $edges{ $_->{in}[0] }{ $_->{in}[1] } }, $_->{out}; if ( ++$used{ $_->{out} } > 1 ) { die 'Only one input per node!'; } } #### eval { ... }; if ( $! ) { say "Error starting ID $_->{id}: $!"; }