2012-04-11 59 views
2

看着perltidy我沒有看到這樣的選項。有沒有工具可以做到這一點?如何在格式化Perl源代碼時按鍵排序哈希項?

+2

我會爲任何嘗試這樣做的工具感到緊張。由於這些值可能是複雜操作的結果,因此它必須在比perltidy和其他語法輪廓筆可以處理的水平低得多的水平上理解Perl源。 – 2012-04-11 11:31:06

+0

如果你提到密鑰本身可能是複雜操作的結果,那麼它不是我的情況。我們可以假設所有的鍵都是字符串常量。 – 2012-04-11 13:52:03

回答

3

我寧願按「邏輯」排序我的密鑰。像'name'和'id'這樣的字段首先出現,有時候名字後面是'長名字'或'描述'。

如果你需要做這樣的事情,你可以使用同一個外殼工廠一個編輯器

  1. 將數據傳遞到Perl程序
  2. EVAL選擇
  3. 使用Data::Dumper並設置​​
  4. 然後做Data::Dumper->Dump([ $eval_hash ], [ '$VAR1' ])
  5. 剝去前部s/\A[^=]+=\s+//
  6. 用輸出替換選區
+0

在這種情況下沒有特殊的邏輯。這些散列或多或少反映了XML模式文件,因此鍵與標籤的名稱相對應。 – 2012-04-11 15:46:23

+0

這種方法存在問題。散列中的某些值是函數調用,因此在評估散列之後,我們會得到調用這些函數的結果,並且原始源將丟失。 – 2012-04-11 20:52:17