Getting the quotes right can be quite daunting, that's why there's help via Sysadm::Install from CPAN: Let's whip up a script one_liner really quickly:
in reply to Escaping characters in one-liners
# one_liner - produce a perl one-liner out of perl code
use Sysadm::Install qw(:all);
my $in = join "", <>;
$in =~ s/\n/ /g;
print "perl -e ", qquote($in, ':shell'), "\n";
Now, if you call one_liner without arguments, it'll wait for code to be typed into STDIN, terminated by CTRL-D, and spit out the one-liner right after:
perl -e "print \"hello\\n\"; print \"world\\n\"; "
Produces properly escaped one-liners out of any messy perl code you paste in.