sub do_bond { get LOCATION; check LOCATION or return; foreach @acc check PARENT_ID or { set error; next; } update & insert or { set error; next; } foreach @built check PARENT_ID or { set error; next; } update & insert or { set error; next; } return 1; # if you got here, everything's fine }