# both branches are very long sub wibble { return 1; } sub wobble { return 2; } sub sg { return COND ? wibble( @_ ) : wobble( @_ ); } #### # one branch (symbolised here by `return 2`) is much shorter than the other sub wibble { return 1; } sub sg { return wibble( @_ ) if COND; return 2; }