use List::Util qw[ min max ]; if( $X < min( $a, $b, $c ) and $Y > max( $a, $b, $c ) or $Z < min( $b, $c, $d ) ) { # do something }