|laziness, impatience, and hubris|
According to RFC1341, "xYzZY" is technically a legal boundary. The purpose of the boundary is to separate the parts of the message. Therefore, the only real requirement is that the boundary string does not appear anywhere in the message. That's why you usually see long strings of mixed alpha-numeric characters. The RFC even recommends using a string containing a string such as "=_" that can never appear in the message for the particular encoding. But as long as the message doesn't contain the boundary, however, everything will work fine.
It just so happens that HTTP::Request::Common uses the following code specifically to ensure that the boundary does not appear anywhere in any of the form parts. It does this by actually checking to see if the boundary is in the part, and making a new boundary if it is.
So, my long-winded point is, don't worry that the boundary string is different. It will work just fine the way it is. :)
Update: It is also important to note that the boundary string sent by your browser will almost certainly be different every time it posts the form. This is because the boundary is usually a randomly generated string, often containing elements such as the current date and time to ensure uniqueness. So it would probably be next to impossible to get your code to give the exact same boundary as your browser, every time.
In reply to Re3: HTTP::Request::Common and multipart/form-data