use MIME::QUotedPrint;
That isn't a module on CPAN - you probably meant MIME::QuotedPrint. Regardless, this suggests that the code you have entered in your post is not the code which you are running. This makes it pretty close to impossible for another party to debug.
All that said, at least one error is that you are not separating the MIME headers from the bodies. Perhaps inserting that extra whitespace in your message is all you really need.
$msg{'body'}=<<eob;
--$boundary
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
$req
--$boundary
Content-Type: text/csv
Content-Tranfer-Encoding: base64
Content-Disposition: attachment; filename="account request for $cn.csv
+"
$estr
--$boundary--
eob