CSV-Reader
view release on metacpan or search on metacpan
# CSV::Reader - CSV reader class
Easy to use Perl CSV file/handle reader class that's meant for reading typical CSV files having a CSV header row.\
This was designed with the idea of using an iterator interface, but Perl does not support interators (nor interfaces) yet :(\
You can also find this module on cpan: https://metacpan.org/pod/CSV::Reader
Synopsis
--------
```perl
use CSV::Reader ();
use open OUT => ':locale'; # optional; make perl aware of your terminal's encoding
# Create reader from file name:
my $reader = new CSV::Reader('/path/to/file.csv');
# Create reader from a file handle (GLOB):
open(my $h, '<', $filename) || die("Failed to open $filename: $!");
# or preferred method that can handle files having a UTF-8 BOM:
open(my $h, '<:via(File::BOM)', $filename) || die("Failed to open $filename: $!");
my $reader = new CSV::Reader($h);
lib/CSV/Reader.pm view on Meta::CPAN
=head1 DESCRIPTION
Simple CSV reader class that uses Text::CSV internally.
The CSV files are expected to have a header row of column names.
This was designed with the idea of using an iterator interface, but Perl does not support interators (nor interfaces) yet :(
=head1 SYNOPSIS
use CSV::Reader ();
use open OUT => ':locale'; # optional; make perl aware of your terminal's encoding
# Create reader from file name:
my $reader = new CSV::Reader('/path/to/file.csv');
# Create reader from a file handle (GLOB):
open(my $h, '<', $filename) || die("Failed to open $filename: $!");
# or preferred method that can handle files having a UTF-8 BOM:
open(my $h, '<:via(File::BOM)', $filename) || die("Failed to open $filename: $!");
my $reader = new CSV::Reader($h);
t/advanced.t view on Meta::CPAN
# Save this file in UTF-8 encoding!
use strict;
use warnings;
use utf8;
use Data::Dumper qw(Dumper); local $Data::Dumper::Terse = 1;
#use open ':std', ':encoding(utf8)';
use open OUT => ':locale'; # before Test::More because it duplicates STDOUT and STDERR
use Test::More qw(no_plan);
use Cwd ();
use File::Basename;
use lib (
File::Basename::dirname(Cwd::abs_path(__FILE__)) . '/../lib', # in build dir
File::Basename::dirname(Cwd::abs_path(__FILE__)) . '/../..' # in project dir with t subdir in same dir as .pm file
);
my $verbose = !$ENV{'HARNESS_ACTIVE'} && 0;
t/broken_line.t view on Meta::CPAN
# Save this file in UTF-8 encoding!
use strict;
use warnings;
use utf8;
use Data::Dumper qw(Dumper); local $Data::Dumper::Terse = 1;
#use open ':std', ':encoding(utf8)';
use open OUT => ':locale'; # before Test::More because it duplicates STDOUT and STDERR
use Test::More qw(no_plan);
use Cwd ();
use File::Basename;
use lib (
File::Basename::dirname(Cwd::abs_path(__FILE__)) . '/../lib', # in build dir
File::Basename::dirname(Cwd::abs_path(__FILE__)) . '/../..' # in project dir with t subdir in same dir as .pm file
);
my $verbose = !$ENV{'HARNESS_ACTIVE'} && 0;
# Save this file in UTF-8 encoding!
use strict;
use warnings;
use utf8;
use Data::Dumper qw(Dumper); local $Data::Dumper::Terse = 1;
#use open ':std', ':encoding(utf8)';
use open OUT => ':locale'; # before Test::More because it duplicates STDOUT and STDERR
use Test::More qw(no_plan);
use Cwd ();
use File::Basename;
use lib (
File::Basename::dirname(Cwd::abs_path(__FILE__)) . '/../lib', # in build dir
File::Basename::dirname(Cwd::abs_path(__FILE__)) . '/../..' # in project dir with t subdir in same dir as .pm file
);
my $verbose = !$ENV{'HARNESS_ACTIVE'} && 0;
( run in 2.364 seconds using v1.01-cache-2.11-cpan-ceb78f64989 )