求助 print 的问题

求助 print 的问题

求助 print 的问题
我写一个简单perl脚本,print输出一条语句 print "test\n";
然后用运行java程序调用perl脚本
为什么在java中捕获不到“test”呢?
但用system("echo test");java中却能捕捉到“test”。

请求给予解答。
代码如下:

[b]//java文件 “/root/scripts/JavatoPerl/TextArea1.java”内容:[/b]
/*
生成文本框窗口,捕捉perl文件"/root/scripts/JavatoPerl/test.pl"的执行输出,显示在文本框中。
*/
import java.awt.*;
import java.io.*;
public class TextArea1
{
public static void main(String[] args)throws IOException
{
Frame frame = new Frame("text view");
TextArea ta = new TextArea(20,50);
String aline;

//usr BufferedReader,get one line from file.
BufferedReader br = new BufferedReader(
new FileReader("/root/scripts/JavatoPerl/log")
);
while((aline=br.readLine())!=null)
{
ta.append(aline+'\n');

}
br.close();

frame.add(ta);
frame.pack();
frame.setVisible(true);
try
{
Process p = Runtime.getRuntime().exec("/root/scripts/JavatoPerl/test.pl");
InputStreamReader stdInput =
new InputStreamReader(
new BufferedInputStream(p.getInputStream()));
char[] buf = new char[100];
int len;
while((len = stdInput.read(buf)) >= 0)
{
String tmp="";
for(int i=0;i<len;i++)
{
tmp+=buf[i]+"";
}
ta.append(tmp);
System.out.print(buf);
}
}
catch (Exception e) {
System.out.println(e);
}
}
}

[b]#perl文件“/root/scripts/JavatoPerl/test.pl”内容:[/b]
#!/usr/bin/perl -w

while(1)
{
sleep(1);
print system("echo test")."\n"; java文件可捕捉输出“test”
#print ("test\n"); java文件不可捕捉输出“test”
};


把缓冲关了呢.
在perl中加入--$io->.
在perl中加入
$io->flush();
结果还是不行。

也没有任何报错。只是不输出