On Mon, Nov 05, 2012 at 09:41:37AM +0000, Arran Cudbard-Bell wrote:
Hmm not really equivalent because of the pre-escaping you'd need to do to get the string into perl unmolested. I challenge you to write a one liner that'll work with an arbitrary length string from STDIN :P
Also, I hate Perl, with a passion. Any time I write some I feel dirty, and it always comes out looking like someone vomited in the text editor.
In Ruby: echo "foo\200bar" | ruby -e 'puts eval("\""+$stdin.read+"\"").unpack("H*").first' Or without eval: echo "foo\200bar" | ruby -e 'puts $stdin.read.gsub(/\\(\d\d\d)/) { $1.to_i(8).chr }.unpack("H*").first' Note: this will only work on ruby 1.8. Ruby 1.9 has a horrid string encoding system which requires jumping through hoops to get around.