in reply to intermix list of items

sub intermix { return ( substr( $a, 0, rindex($a, '.')) eq substr( $b, 0, rindex($b, '.')) ) ? 1 : 0; }

The use of ?: is not necessary:

sub intermix { return ( substr( $a, 0, rindex($a, '.')) eq substr( $b, 0, rindex($b, '.')) ); # ? 1 : 0; }