my @problems; sub required { my ($val, $msg) = @_; if ($val) { return 1; } else { push @problems, $msg; return 0; } } for my $row (@$data) { my ($cusip, $isin, $sedol, $ticker) = @$row; required($cusip, "Missing cusip for $ticker") or next; required($isin, "Missing isin for $ticker") or next; required($sedol, "Missing sedol for $ticker") or next; }