Should work if you initialize the variable in a BEGIN block:
BEGIN { $source = 'MacRoman'; } use encoding $source, STDOUT => 'utf-8';
Ah!
Yes, put single quotes around your EOT marker:
$text = <<'EOT';
$ome$tuff $ome$tuff $ome$tuff>EOT >#
Hey! and I'd been wondering why people bothered to do that!
Terrific. Thanks!
JD