It needs to be part of the code, I included it as a comment so that it has no effect on the script but still signals to the original script that it should pipe the plaintext to irb. I'm assuming you mean the former, but I just want to clarify (since I don't know Ruby and don't know what your code snippet actually does). pack changes how data is displayed. For example I could unpack the string "see" into binary representation : "see".unpack("B*") == "011100110110010101100101" and I could put that in an array and pack it back into a string ["011100110110010101100101"].pack("B*") == "see" so when I say puts `echo "#{decrypted_message}" | #{[105, 114, 98].pack("c*")}` it is equal to saying puts `echo "#{decrypted_message}" | irb` which means that the decrypted message should be piped to irb which is a command line style tool for running ruby scripts. I could also have said this: puts `echo "#{decrypted_message}" #{["7c20697262"].pack("H*")}` These numbers are strings also, anything in " " is a string. And if we wear bomb proof suits we can jump on hand grenades.