Using process I/O channels
To discuss using process I/O channels, we need to be in the Alice
folder. Also in that folder is a rev.pl
Perl script, whose function (as the name suggests) is to read its input stream, reverse the lines, and write them back to the output stream:
# For our example use the text of the Jabberwocky poem julia> jabber = "jabberwocky.txt"; julia> proc = open(`./rev.pl $jabber`,"r+"); julia> proc.in Base.PipeEndpoint(RawFD(26) open, 0 bytes waiting) julia> close(proc.in);
We have closed the input stream, but the output is still open, so we can read the lines from it and display the reversed poem, not forgetting first to close the output stream too:
julia> poem = readlines(proc.out); julia> close(proc.out); julia> poem 34-element Vector{String}: "sevot yhtils eht dna ,gillirb sawT'" ":ebaw eht ni elbmig dna eryg diD" ",sevogorob eht erew ysmim llA" ".ebargtuo shtar emom eht...