packetstormer has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

Could anyone point me in the right direction to making a Perl script output as it runs in a browser? Below is a simple example of the difference between running the script via the CLI and the browser. On the CLI the script outputs each line as it finishes. However, via the browser the whole script needs to be execute before the whole results gets printed to screen.

#!/usr/bin/perl use strict; print "Content-type: text/html\n\n"; my @arr = (1..100000); foreach my $i(@arr){print "$i\n<br />"}

Are there any "tricks" to make the page load, say line by line as the script runs via the browser?

Replies are listed 'Best First'.
Re: Output to Browser as script executes?
by GrandFather (Saint) on Apr 05, 2012 at 10:36 UTC
      It is mainly to keep the users informed. The actual process I will be running with the results of a user built template being passed to a mass SMS scheduler. There could be as little as 10 SMS text being sent or as many as 100,000. I would like the user to have some feedback on the result/status of the loop, if possible.

        In that case I'd be inclined to fork off a process to handle the scheduling task and return a page that has a timed refresh (include <META HTTP-EQUIV="REFRESH" CONTENT="30"> in <head> for a refresh every 30 seconds for example) while the scheduling task is running.

        True laziness is hard work