我做使用Config::Simple
如何從Perl數組中刪除元素?
配置文件即new.conf
[Dialer External]
pass=pass2
user=user2
[Dialer Onboard]
pass=pass1
user=user1
[Dialer Onboard1]
pass=pass1
user=user1
[Dialer Onboard2]
pass=pass1
user=user1
我讀的配置文件,並在此配置文件是我的代碼
#!/usr/bin/perl
use Config::Simple;
use Data::Dumper;
$cfg = new Config::Simple(syntax => 'ini');
$cfg->read('new.conf');
$cfg = Config::Simple->import_from('new.conf', \%Config);
my @arr = (keys %Config);
print "@arr";
散列參考,即%Config
我分配到陣列@arr
輸出將是
Dialer Onboard1.pass
Dialer Onboard.pass
Dialer Onboard.user
Dialer Onboard2.pass
Dialer Onboard2.user
Dialer External.user
Dialer External.pass
Dialer Onboard1.user
直到這裏是正確的。現在我想刪除一些元素,並將其分配給新的數組,應該是這樣的
Dialer Onboard1
Dialer Onboard
Dialer Onboard
Dialer Onboard2
Dialer Onboard2
Dialer External
Dialer External
Dialer Onboard1
,這樣的點(.
)我不希望任何數據之後。爲此,我想使用的grep
function.Here是我對於
@arr = grep { !/./ } @arr;
my @result;
for (@arr) {
if (/./) {
push @result, $_;
}
}
代碼,但這個工作不適合我,或者它可能是錯誤的做法。我無法確定我出錯的地方。 最後我想從中刪除重複的鍵,並給我輸出這樣的東西。
Dialer External
Dialer Onboard
Dialer Onboard1
Dialer Onboard2
請有人幫助我,並建議我如何實現這一點。提前感謝。
'grep'可用於更改數據。'@arr = grep s /\..*//,@arr'也可以在這種情況下工作 – mob
嘿,謝謝....但是我可以在你怎麼顯示獨特的元素? – abhillier
@mob:可以在'grep'中修改$ _,但不推薦。 – choroba