This is by design and not a bug.
It is not necessary to escape every instance of a ' or a " character in
an XML document. It is necessary to escape a quote character in the
value of an attribute, but only if the quote character matches the
attribute value delimiter. For example:
<book publisher='O'Reilly'>
However, since XML::Simple always uses double quotes for attributes, it
never needs to escape single quotes. This is still well-formed XML:
<book publisher="O'Reilly">
If you prefer to have your single quote characters escaped, you can
create your own class which inherits from XML::Simple, but overrides the
escape_value() method.
Your bug report suggests that not escaping single quotes leads to errors
from XMLin, but you didn't include the error.
Cheers
Grant