use Macro 'min( $x, $y )' => q[ ( $x < $y ? $x : $y ) ], 'max( $x, $y )' => q[ ( $x > $y ? $x : $y ) ], ; ... my( $p, $q, $r ) = ( 1, 2, 3); my $i = min( $p, $q ); my $j = max( $q, $r );