API-Eulerian
view release on metacpan or search on metacpan
lib/API/Eulerian/EDW/Parser/CSV.pm view on Meta::CPAN
#/usr/bin/env perl
###############################################################################
#
# @file CSV.pm
#
# @brief Eulerian Data Warehouse REST CSV Parser Module definition.
#
# @author Thorillon Xavier:x.thorillon@eulerian.com
#
# @date 26/11/2021
#
# @version 1.0
#
###############################################################################
#
# Setup module name
#
package API::Eulerian::EDW::Parser::CSV;
#
# Enforce compilor rules
#
use strict; use warnings;
#
# Inherited interface from API::Eulerian::EDW::Parser
#
use parent 'API::Eulerian::EDW::Parser';
#
# Import Text::CSV
#
use Text::CSV;
#
# @brief
#
# @param $class - API::Eulerian::EDW::Parser class.
# @param $path - File Path.
# @param $uuid - Request uuid.
#
# @return API::Eulerian::EDW::Json Parser.
#
sub new
{
my ( $class, $path, $uuid ) = @_;
my $self;
my $file;
my $fd;
if( open( $file, '<:encoding(utf8)', $path ) ) {
$self = $class->SUPER::new( $path, $uuid );
$self->{ _FILE } = $file;
$self->{ _PARSER } = Text::CSV->new( {
binary => 1,
auto_diag => 1,
sep_char => ',',
} );
}
return $self;
}
#
# @brief
#
# @param $self
#
# @return
#
sub file
{
return shift->{ _FILE };
}
#
# @brief
#
# @param $self
#
# @return
#
sub parser
{
return shift->{ _PARSER };
}
#
# @brief
#
# @param $self - API::Eulerian::EDW::Parser
#
sub do
( run in 0.477 second using v1.01-cache-2.11-cpan-39bf76dae61 )