use normally does a require and import; if you want to be able to call xor_buf without qualification, you need to say
Math::XOR::->import() after the require.
You may still run into problems with perl parsing things differently than if it had known about the xor_buf sub at compile time. I'm guessing Math::XOR::xor_buf didn't work because of that (in which case make sure it looks like a function call to perl, e.g. &Math::XOR::xor_buf("a","b") with & and ()) or because you got the case of some part of the name wrong.