:: CSV_XS :: CSV.
- , . CSV - , (RFC 4180), post hoc, , , Microsoft, -. MS , CSV, MS.
:: CSV
use strict;
use warnings;
use Text::CSV;
my @rows;
{
my $csv = Text::CSV->new()
or die "Cannot use Text::CSV ($!)";
my $file = "data.csv";
open my $fh, '<', $file
or die "Cannot open $file ($!)";
while (my $row = $csv->getline($fh))
{
push @rows, $row;
}
$csv->eof or $csv->error_diag();
close $fh
or die "Failed to close $file ($!)";
}
{
foreach my $row (@rows)
{
foreach my $col (@{$row})
{
$col = uc($col);
}
print "\n";
}
}
{
my $csv = Text::CSV->new()
or die "Cannot use Text::CSV ($!)";
my $file = "output.csv";
open my $fh, '>', $file
or die "Cannot open $file ($!)";
$csv->eol("\n");
foreach my $row (@rows)
{
$csv->print($fh, \@{$row})
or die "Failed to write $file ($!)";
}
close $fh
or die "Failed to close $file ($!)";
}
,
EMPLOYEENAME,OFFICEHISTORY,JOBLEVELHISTORY
"JOHN SMITH",501,ENGINEER
"JOHN SMITH",601,"SENIOR ENGINEER"
"JOHN SMITH",701,MANAGER
"ALEX BUTTON",601,"SENIOR ASSISTANT"
"ALEX BUTTON",454,MANAGER