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 )