Unless you want to do something klunky like wrap the response as JSON (return an Object with a key for the log text and one for the PDF contents (maybe base64-encoded)) you're thinking along the wrong lines. You're going to need to keep context on the server and handle returning things in multiple HTTP requests.

The way I'd approach is to assign some kind of "job id" to a set of results (the input file, the output dvi or pdf, the log from processing). When you process an input file you'd maintain the context (the results) in some way keyed by the job id (save everything into a temporary directory named after it perhaps). You'd then come up with an API that you can use from clients to request back a result type for a given job id and either link directly or (possibly using some sort of JS) provide an all in one page (maybe fetching the log and pdf and showing those, with a separate link to the pdf results for download).

The cake is a lie.
The cake is a lie.
The cake is a lie.


In reply to Re^3: Can two separate responses be sent to the client's browser from Perl, such as via fork{}? by Fletch
in thread Can two separate responses be sent to the client's browser from Perl, such as via fork{}? by Polyglot

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.