logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Catmandu::Importer::CSV - Package that imports CSV data

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. If "header" is 0 and "fields" is "undef" the fields will be named by  column  index  ("0",
           "1", "2", ...).

       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

Description

       The package 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".

Methods

       Every  Catmandu::Importer  is  a  Catmandu::Iterable  all its methods are inherited.  The methods are not
       idempotent: CSV streams can only be read once.

Name

       Catmandu::Importer::CSV - Package that imports CSV data

See Also

       Catmandu::Exporter::CSV, Catmandu::Importer::XLS

perl v5.40.0                                       2025-01-17                       Catmandu::Importer::CSV(3pm)

Synopsis

           # From the command line

           # convert a 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

           # In a Perl script

           use Catmandu;

           my $importer = Catmandu->importer('CSV', file => "/foo/bar.csv");

           my $n = $importer->each(sub {
               my $hashref = $_[0];
               # ...
           });

See Also