use A ; eval { no warnings 'redefine'; use B ; # do stuff which only requires B } # do stuff which only requires A