http://www.perlmonks.org?node_id=438888


in reply to Escaping characters in one-liners

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:

#!/usr/bin/perl # 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:

$ one_liner print "hello\n"; print "world\n"; ^D perl -e "print \"hello\\n\"; print \"world\\n\"; "

Produces properly escaped one-liners out of any messy perl code you paste in.