my $db = DBI->connect( blah, blah ); my $sql = $db->prepare( "insert into my_table (col1,col2) values (?,?)" ); while (<>) { # assume we are reading rows of data... chomp; my ( $v1, $v2 ) = split( /\t/ ); # ... tab-delimited $sql->execute( $v1, $v2 ); } $sql->finish; # now try reading stuff back: $sql = $db->prepare( "select col1,col2 from my_table" ); $sql->execute; # (update: forgot to put this in at first) my $rowref = $sql->fetchall_arrayref; for my $row ( @$rowref ) { print join( "\t", @$row ), $/; } $sql->finish;