return ! ( $a = $x -> $p1 == 'yes' ? $x -> $p2 : 0 ) ? ( ! ( $b = $y -> $p1 == 'yes' ? $y -> $p2 : 0 ) ? 0 : 1 ) : ( ! ( $b = $y -> $p1 == 'yes' ? $y -> $p2 : 0 ) ? - 1 : ( $rev ? $b - $a : $a - $b ) ) ;