Update: The problem was that, even with autoflush set, the <> operator expects a newline before it returns. Thanks to Ikegami and Bart, for slapping the solution into my head, and to Ikegami in particular for his much saner 'open'.

Also, I feel it only just to point out that they both had suggestions that essentially turn this into a single-line program; the simplest solution being to simply exec('mencoder', $arg1, ..., '-o', $arg2);

I fall, another victim of overengineering through ignorance/inexperience/4AM thinking.

I'm writing a small convenience script that is essentially a wrapper for single run of mencoder.

I have something that works, in that it runs mencoder with the proper options and arguments. My problem is passing what mencoder is printing back out through Perl to the console.

Note, most of the output is passed through fine. It's only that the constantly updating progress line at the bottom doesn't get printed, ever.

Here's the code. It's meant to convert a video file into the proper format to run on my new Creative Zen (Xmas present) if anyone cares ;-)

#!/usr/bin/perl -w # zenconv.pl --- Converts Files for play on Creative Zen # Author: William Mayo <pobocks@davemayo.is-a-geek.org> # Created: 06 Jan 2009 # Version: 0.01 use warnings; use strict; die "Wrong Number of Args, stupid!\n" if (@ARGV != 2); my $arg1 = shift; my $arg2 = shift; $arg1 =~ s/ /\\ /g; $arg2 =~ s/ /\\ /g; open (CONVERSION, '-|', "mencoder $arg1 -oac mp3lame -aid 128 -ovc xvi +d -xvidencopts bitrate=-1 -vf scale -zoom -xy 320 -o $arg2"); { local $| = 1; while ( <CONVERSION>) { print $_; } } close (CONVERSION);
for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";

In reply to Print Problem: Progress Printout Prevented by pobocks

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.