在Perl中,你可以使用以下步骤来完成这个任务:
以下是一个完整的Perl脚本,演示如何读取CSV文件到哈希,按升序排序键,然后将结果写入新的CSV文件。
use strict;
use warnings;
use Text::CSV;
# 读取CSV文件并填充哈希
my %data;
my $csv = Text::CSV->new({ binary => 1, auto_diag => 1 });
open my $fh, '<', 'input.csv' or die "Could not open 'input.csv' $!\n";
while (my $row = $csv->getline($fh)) {
my ($key, @values) = @$row;
$data{$key} = \@values;
}
close $fh;
# 按键升序排序哈希
my @sorted_keys = sort { $a cmp $b } keys %data;
# 将排序后的数据写入新的CSV文件
open my $out_fh, '>', 'sorted_output.csv' or die "Could not open 'sorted_output.csv' $!\n";
$csv->eol("\n");
for my $key (@sorted_keys) {
$csv->print($out_fh, [$key, @{$data{$key}}]);
}
close $out_fh;
print "Sorted data has been written to sorted_output.csv\n";
Text::CSV
模块读取CSV文件,并将每一行的第一个字段作为键,其余字段作为值存入哈希。sort
函数按键进行升序排序。Text::CSV
的binary
选项来处理不同编码。通过这种方式,你可以有效地管理和操作CSV数据,同时保持代码的清晰和可维护性。
领取专属 10元无门槛券
手把手带您无忧上云