my $qrycmd = '-S[Server] -U[userid] -P[password] -h-1 -n -s:'; # -h-1 suppresses headers # -n removes numbering and the prompt symbol (>) from input lines # -s: sets the field seperator to a colon, :, this eliminates a space # between fields and in the first position of the line (tabs, \t, # doesn't work reliably open( DB, "isql $qrycmd -iperlmonk34.sql |" ) or die "can't run isql: $!"; while () { # assuming the tool prints one line per row chomp; # remove newline my ( $lname, $fname ) = split(/:/); # the if statement accounts for the last two lines of the isql output # which consists of a blank line followed by a line listing rows # affected if(defined $fname){ push @fnames, $fname; push @lnames, $lname; } } close DB;