SYNOPSIS
use Catmandu::Importer::CSV;
my $importer = Catmandu::Importer::CSV->new(file => "/foo/bar.csv");
my $n = $importer->each(sub {
my $hashref = $_[0];
# ...
});
Convert CSV to other formats with the catmandu command line client:
# convert CSV file to JSON catmandu convert CSV to JSON < journals.csv # set column names if CSV file has no header line echo '12157,"The Journal of Headache and Pain",2193-1801' | \ catmandu convert CSV --header 0 --fields 'id,title,issn' to YAML # set field separator and quote character echo '12157;$The Journal of Headache and Pain$;2193-1801' | \ catmandu convert CSV --header 0 --fields 'id,title,issn' --sep_char ';' --quote_char '$' to XLSX --file journal.xlsx
DESCRIPTION
This Catmandu::Importer imports comma-separated values (CSV). The object fields are read from the CSV header line or given via the "fields" parameter. Strings in CSV are quoted by "quote_char" and fields are separated by "sep_char".CONFIGURATION
- file
- Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string.
- fh
- Read input from an IO::Handle. If not specified, Catmandu::Util::io is used to create the input stream from the "file" argument or by using STDIN.
- encoding
- Binmode of the input stream "fh". Set to ":utf8" by default.
- fix
- An ARRAY of one or more fixes or file scripts to be applied to imported items.
- fields
- List of fields to be used as columns, given as array reference, comma-separated string, or hash reference.
- header
- Read fields from a header line with the column names, if set to 1 (the default).
- sep_char
- Column separator ("," by default)
- quote_char
- Quotation character (""" by default)
- escape_char
- Character for escaping inside quoted field (""" by default)
- allow_loose_quotes
- allow_loose_escapes
- Allow common bad-practice in CSV escaping