use IPC::Open2; local (*Reader, *Writer); $pid = open2(\*Reader, \*Writer, "e:/oracle/ora81/bin/sqlplus -s scott/tiger"); print Writer "set pagesize 100\n"; print Writer "select * from emp;\n"; print Writer "exit\n"; close Writer; #have to close Writer before read #have to read and print one line at a time while () { print "$_"; } close Reader; waitpid($pid, 0); #makes your program cleaner #### use IPC::Open2; local (*Reader, *Writer); $pid = open2(\*Reader, \*Writer, "bc -l"); $sum = 2; for (1 .. 5) { print Writer "$sum * $sum\n"; chomp($sum = ); } close Writer; close Reader; waitpid($pid, 0); print "sum is $sum\n";