use strict; use warnings; use XBase; my $dbf_file = shift; die "Usage dbf2csv " unless -f $dbf_file; dbf_dump($dbf_file, fs => ','); # defaults: rs=>"\n", fs=>':', 'undef'=>'' sub dbf_dump { my ($dbf, %opts) = @_; my $csv = "$dbf.csv"; open my $fh, '>', $csv or die "Can't write to file ", $csv, ": $!"; select $fh; dump_records($dbf, %opts); select STDOUT; close $fh; } sub dump_records { my ($name, %opts) = @_; my $table = XBase->new($name) or die XBase->errstr; $table->dump_records(%opts); $table->close; }