The problem you're encountering is related to this bug report. It is caused by the fact that Class::Std has a CHECK block in which it does most of its setup. The CHECK block would normally get executed at the last stage of compilation, and before the code starts running. The use_ok() function does an eval to import your module. The test code is already running by that point, so it's too late to deal with the CHECK block. As a result, Class::Std fails to work properly.
You should take a look at Object::InsideOut. It has all of the features of Class::Std and many more, plus none of its bugs, including this one.
(4)
]
