use XBase; my ($file, $index) = ( '/path/to/foo.dbf', 0); my $table = XBase->new $file or die XBase->errstr; { local $\ = $record_sep; local $, = $field_sep; # or use a CSV module open my $outfile, '>', '/path/to/foo.txt' or die $!; do { my @foo = $table->get_record $index or die XBase->errstr; print $outfile @foo or die $!; } while $index++ < $table->last_record; close $outfile or die $!; } $table->close or die XBase->errstr;