Are you sure its this line thats causing the hang? 1st try this:
$|=1;
print "got here!\n"
system("$prog -f $fname ") ;
print "And i also got here!\n";
My second guess is that the $prog is waiting for something, like some data to be piped to it, what does the "top" command show, is it using cpu etc?
I guess we would need a lot more info on $prog to make a better guess.
This is not a Signature...