首先,appologies,如果我在即將發佈的帖子上得到任何術語錯誤,這對我來說仍然是非常新的。訪問哈希數組的更優雅的方式
一些背景知識,我有一個腳本,檢查我們存檔的網絡配置爲一組特定的設置。因此,該腳本運行多次檢查,並將結果添加到該檢查的數組中。
例如 一個檢查,以確保系統日誌被配置被添加到稱爲@internalsyslogerror
所有的檢查之後的陣列已經運行時,用於所有的檢查陣列被添加到散列,用鍵爲設備名稱。
記下所有代碼使用嚴格的,使用警告
用下面的命令;
$results{$configs} = [@internalsyslogerror, @bordersyslogerror,
@borderntperror, @borderntperror, @internalntperror,
@bordertacacserror, @internaltacacserror, @enablepasswordchecks,
@internalsnmpkeyserror, @timezoneerror, @configregistererror,
@bannererror, @bootregistererror, @domainnameerror];
遇到的問題IM是什麼,是提取信息的最優雅的方式,我想,以減少爲了增加一個新的支票給腳本修改我不得不作出的量。 目前我將不得不添加額外的數組到上面的代碼,然後將解引用部分添加到處理它的子。
這裏是目前我所做的解除參考和輸出到一個數組,然後通過電子郵件發送。
foreach my $k (keys %results) {
push @results, "<b>$k</b><br>";
if (defined $results{$k}[0]){
push @results, "$results{$k}[0]";
}
if (defined $results{$k}[1]){
push @results, "$results{$k}[1]";
}
if (defined $results{$k}[2]){
push @results, "$results{$k}[2]";
}
if (defined $results{$k}[3]){
push @results, "$results{$k}[3]";
}
if (defined $results{$k}[4]){
push @results, "$results{$k}[4]";
}
if (defined $results{$k}[5]){
push @results, "$results{$k}[5]";
}
if (defined $results{$k}[6]){
push @results, "$results{$k}[6]";
}
if (defined $results{$k}[7]){
push @results, "$results{$k}[7]";
}
if (defined $results{$k}[8]){
push @results, "$results{$k}[8]";
}
if (defined $results{$k}[9]){
push @results, "$results{$k}[9]";
}
if (defined $results{$k}[10]){
push @results, "$results{$k}[10]";
}
if (defined $results{$k}[11]){
push @results, "$results{$k}[11]";
}
if (defined $results{$k}[12]){
push @results, "$results{$k}[12]";
}
if (defined $results{$k}[13]){
push @results, "$results{$k}[13]";
}
}
的問題是,我可以做什麼IM上面做,但不知何故, 「對飛」 生成代碼
感謝
一旦在IFS的龐大的數字一眼,我差點以爲我是在閱讀,因此:-) thedailywtf.com –
@denis呼救:D – Steve