in reply to Re: Interactive openssl raw
in thread Interactive openssl raw

That's my fault, I posted exec as that was my last test live. I had tried backticks, system and exec. I recall last time I attempted this I was going after the IPC2/3 modules without success. I have not or did not notice IPC::Run itself. I shall give that a look when I get home.

I understand that not liking io::socket::SSL is just a personal choice. Until I understand perl better, I want to stay away from sysread and I was "forced" to use that with IO::S::SSL. Doing multiple handles without threading knowledge, sysread would read whatever was on the buffer. And the buffer itself would cause me issues for size and I spent more time dealing with it than I cared to. </p

It comes down to, using openssl raw in terminal, I'm able to do everything i want in about 25 seconds. Using io:s:SSL, it takes me a lot longer and I spend time troubleshooting all types of noon bugs. That's why I was hoping to pipe in and out directly to openssl. I'll check out IPC again when I'm home.

Thanks.

Replies are listed 'Best First'.
Re^3: Interactive openssl raw
by haukex (Archbishop) on Dec 06, 2016 at 13:14 UTC

    Hi Guntherssl,

    Sure, Perl is a glue language and there's nothing inherently wrong with shelling out to other programs. There are just several things one has to watch out for, and people get these things wrong quite often. For example: knowing how to avoid issues with quoting command line arguments (such as knowing how to avoid the shell altogether), this includes potential security issues caused by interpolating Perl variables into the shell commands; correctly communicating with the subprocess including feeding it STDIN, capturing its STDOUT, and evaluating its exit code for success or failure; forgetting that the subprocess might write things to STDERR that might be relevant to capture; trying to use things like backticks/system when it's not appropriate and one should use modules instead; and lastly that many things are simply much more efficient with Perl builtins (a few examples of very many: `ls ...` vs. glob, or shelling out to sed or awk). So if you keep all that in mind, feel free to try out IPC::Run :-)

    Regards,
    -- Hauke D

    Update: Reduced wordiness slightly.