スクリプトに別のコマンド ライン引数を追加したくない場合 (はるかにクリーンで堅牢です)、スクリプトの stdin に書き込む必要があります。
このスニペットは機能するはずです (Test.java):
import java.io.*;
public class Test
{
    public static void main(String[] args)
    {
        ProcessBuilder pb = new ProcessBuilder("perl", "test.pl");
        try {
            Process p=pb.start();
            BufferedReader stdout = new BufferedReader( 
                new InputStreamReader(p.getInputStream())
            );
            BufferedWriter stdin = new BufferedWriter(
                new OutputStreamWriter(p.getOutputStream())
            );
            //write to perl script's stdin
            stdin.write("testdata");
            //assure that that the data is written and does not remain in the buffer
            stdin.flush();
            //send eof by closing the scripts stdin
            stdin.close();
            //read the first output line from the perl script's stdout
            System.out.println(stdout.readLine());
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}
テストするには、この短い perl スクリプト (test.pl) を使用できます。
$first_input_line=<>;
print "$first_input_line"
お役に立てば幸いです。次のStackoverflowの記事もご覧ください。
*ヨスト