2012-04-11 5 views
2

Mit Blick auf perltidy sehe ich keine solche Option. Gibt es ein Werkzeug, das das tut?Wie werden Hash-Einträge beim Formatieren von Perl-Quellcode nach Schlüsseln sortiert?

+2

Ich wäre nervös über jedes Werkzeug, das versucht, das zu tun. Da die Werte die Ergebnisse komplexer Operationen sein können, müsste sie die Perl-Quelle auf einer viel niedrigeren Ebene verstehen als die, die Perltidy und andere Syntax-Highlighter handhaben können. –

+0

Wenn Sie auf die Tatsache verweisen, dass die Schlüssel selbst die Ergebnisse komplexer Operationen sein können, dann ist es nicht mein Fall. Wir können davon ausgehen, dass alle Schlüssel String-Konstanten sind. –

Antwort

3

Ich bevorzuge es, meine Schlüssel "logisch" zu sortieren. Felder wie "Name" und "ID" stehen an erster Stelle, manchmal etwas wie "Langer Name" oder "Beschreibung" nach dem Namen.

Wenn Sie so etwas wie dies tun müssen, können Sie einen Editor mit einer Shell-Anlage

  1. die Daten in ein Perl-Programm übergeben verwenden
  2. eval die Auswahl
  3. Verwendung Data::Dumper und setzen $Data::Dumper::Sortkeys = 1;
  4. Und dann s/\A[^=]+=\s+//
  5. aus dem vorderen Teil Data::Dumper->Dump([ $eval_hash ], [ '$VAR1' ])
  6. Streifen tun
  7. Ersetzen Sie die Auswahl durch den Ausgang
+0

In diesem Fall gibt es keine spezielle Logik. Diese Hashes spiegeln mehr oder weniger XML-Schemadateien wider, sodass die Schlüssel den Namen der Tags entsprechen. –

+0

Es gibt ein Problem mit diesem Ansatz. Einige Werte in einem Hash sind Funktionsaufrufe, so dass nach dem Auswerten des Hash die Ergebnisse des Aufrufs dieser Funktionen erhalten werden und die ursprüngliche Quelle verloren geht. –

Verwandte Themen