I don't see anything concrete, but here are several suggestions:
Not part of the problem, but you say 'c:\winnt\fonts'. This is better written as either 'c:\\winnt\\fonts' or 'c:/winnt/fonts'. I know you're using single quotes, so there are no meta-characters to escape, but it's just good practice.
You're not testing whether opendir succeeds or not (and you're not closing it afterwards)...
I forget what $image -> ReadImage("xc:white"); does exactly, paint the image white I assume. Try using a Draw with method => Floodfill and see what that does. Save the file out at this point, before writing the text, to test whether you really are getting a clean background, or whether it is adding the text that adds the garbage.
It looks like you're overwriting the same image with lots of different fonts, at least as many as there are whose names end in arial.ttf (and the dot is not escaped). Normally there should only be one, but you never know...
You're writing the image out in JPEG format, which is not the ideal format for non-photographic images. Try using PNG or GIF and see if that clears up the artifacts you observe.
The Image::Magick library is a cantankerous beast. I have installed it successfully on a couple of occasions, but I have also had a couple of times when I couldn't get it to behave correctly. See if what you are trying to do can be achieved with the command-line tools: that will at least help you find out whether the bug is in your Perl code (passing an incorrect parameter type) or something else.