use X; BEGIN{ tie %::, 'X'; } ... require IO::Socket; ## This causes the "Can't upgrade that type of scalar"