【发布时间】:2017-04-21 23:38:52
【问题描述】:
我正在编写一个脚本来解析“pure-ftpwho -s”命令以获取当前传输的列表。但是,当用户从 FTP 断开连接并重新连接并恢复传输时,该文件会显示两次。我想用 Perl 删除重影。解析后,arrayref 是这样的(用 Data::Dumper 转储)
$VAR1 = [
{
'status' => 'DL',
'percent' => '20',
'speed' => '10',
'file' => 'somefile.txt',
'user' => 'user1',
'size' => '14648'
},
{
'status' => 'DL',
'percent' => '63',
'speed' => '11',
'file' => 'somefile.txt',
'user' => 'user1',
'size' => '14648'
},
{
'status' => 'DL',
'percent' => '16',
'speed' => '60',
'file' => 'somefile.txt',
'user' => 'user2',
'size' => '14648'
}
];
这里 user1 和 user2 正在下载同一个文件,但是 user1 出现了两次,因为第一个是“幽灵”。检查和删除我不需要的元素(在本例中为 arrayref 的第一个元素)的最佳方法是什么。检查的条件是 - 如果“文件”键和“用户”键相同,则删除包含“百分比”键值较小的 hashref(如果它们相同,则删除除一个之外的所有值)。
【问题讨论】:
-
请阅读
perldoc perldsc(也可在线获取perldoc.perl.org/perldsc.html)。