我正在使用一個名為 Nmap::Parser 的 perl 模塊,并且在糾結如何處理哈希參考,我對這些很陌生。呼叫此模塊中的函式之一的指令如下:
對 scripts() 的基本呼叫會回傳為此埠運行的 NSE 腳本的名稱串列。如果給出 $name,它會回傳對具有該名稱的腳本的“輸出”和“內容”鍵的哈希的參考,如果該腳本沒有運行,則回傳 undef。“輸出”鍵的值是腳本的文本輸出。“contents”鍵的值是基于 NSE 腳本的 XML 輸出的資料結構。
我應該如何訪問這些鍵值,我嘗試了以下方法:
my $script = $service->scripts();
foreach my $key ( keys %$script) {
print $key, " => ", $script->{$key},"\n";
foreach my $seckey ( keys %$key ) {
print $seckey, " => ", $key->{$seckey},"\n";
}
}
這是我的輸出:
ldap-rootdse
uj5u.com熱心網友回復:
keys回傳字串,所以$key是字串,所以keys %$key和$key->{$seckey}是錯誤的。
如果你有一個 HoH,你想要
for my $key ( keys %$script ) {
my $val = $script->{$key};
for my $inner_key ( keys %$val ) { # %$val, not %$key
my $inner_val = $val->{ $inner_key }; # $val, not $key
...
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/506228.html
