作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现自己正在编写一个 Perl 脚本作为我正在使用的特定格式的库,仅适用于这种语言。该脚本读取 CSV 文件并将数据保存为专有格式。我只需要保存特定的列,而不是整个数据集,所以我想出了一种使用以下代码按列名访问列的方法。
my $file = "test.csv";
open my $fh, "<", $file or die "$file: $!";
my $csv = Text::CSV->new ({
binary => 1, # Allow special character. Always set this
auto_diag => 1, # Report irregularities immediately
});
$csv->column_names ($csv->getline ($fh)); # use header
while (my $row = $csv->getline_hr ($fh)) {
print $row->{column_name};
}
@hash{qw(header_one header_two)}
$row
不是散列而是引用(我说得对吗?),所以我不太清楚如何实现我需要的。感谢一些帮助!谢谢!
最佳答案
通常,您可以在任何语法中使用引用(或产生引用的表达式),方法是将变量名替换为 {}
中的引用。堵塞。所以:
@hash{qw(header_one header_two)}
@{$row}{qw(header_one header_two)}
@$row{qw(header_one header_two)}
{}
)。
my %slice = %$row{qw(header_one header_two)};
关于perl - Perl 中散列键的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127551/
我是一名优秀的程序员,十分优秀!