gpt4 book ai didi

perl - 如何删除重复值并创建新的 perl 哈希?

转载 作者:行者123 更新时间:2023-12-04 04:12:14 25 4
gpt4 key购买 nike

my %hash1 = ( 
a=>192.168.0.1,
b=>192.168.0.1,
c=>192.168.2.2,
d=>192.168.2.3,
e=>192.168.3.4,
f=>192.168.3.4
);

我有一个上面给出的 perl 哈希。键是设备名称,值是 IP 地址。如何使用 %hash1 创建没有重复 IP 地址(如 %hash2)的哈希? (相同ip的设备被删除)

my %hash2 = ( c=>192.168.2.2, d=>192.168.2.3 );

最佳答案

首先你需要引用你的IP地址,因为192.168.0.1在perl中是V-String,意思是chr(192).chr(168).chr(0) .chr(1).
我的变种是:

my %t;
$t{$_}++ for values %hash1; #count values
my @keys = grep
{ $t{ $hash1{ $_ } } == 1 }
keys %hash1; #find keys for slice
my %hash2;
@hash2{ @keys } = @hash1{ @keys }; #hash slice

关于perl - 如何删除重复值并创建新的 perl 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19677331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com