ahh yes, thank you. but i ran into a little problem. consider the code: open PIPE, "| /usr/bin/mplayer args" or die "failed to open pipe, $!" while ( <PIPE> ) { if ($condition) { close(PIPE); } else { # process line } }
it seems that when i close the pipe before EOF, whatever i type in the terminal that started the perl script is no longer echoed onto the screen. i.e. the script ends and whatever i type into the console isn't echoed on the screen (but its there). what gives? =/ thanks for the help, christopher On Saturday 04 January 2003 06:03 pm, Ken Irving wrote: > On Sat, Jan 04, 2003 at 05:45:00PM -0600, christopher j bottaro wrote: > > hello, > > i'm writing a little dvd to divx perl script using mencoder and a 3 pass > > method. i want to allow auto cropdetection and cropping. to find the > > crop parameters, you gotta run mplayer and watch the output for the crop > > parameters. well, i suppose in perl i can capture mplayer's output with > > the backtick operators and search for the crop parameters, but the > > problem with that is its going to take forever for the movie to finish > > (or even one chapter to finish). i want to be able to parse the output > > of mplayer as its running and as soon as i parse the crop parameters, i > > want to kill the process. how do i do that? i mean how can i do it > > easily? without starting a seperate thread or something...=P > > Instead of backtics, open a pipe to the process and read from it, e.g., > something like: > > open PIPE, "| /usr/bin/mplayer args" or die "failed to open pipe, $!"; > while ( <PIPE> ) { > do stuff, bail & close pipe when done > } > > Untested, but I *think* that may do the job. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]