Warum unterstützt Perl keine Interpolation von Hashes in Anführungszeichen?

7
%Vor%

Warum unterstützt Perl nicht die Interpolation eines Hashs in Anführungszeichen? Es unterstützt Interpolation für Skalare ($), Arrays (@) und warum nicht für Hashes (%)?

    
Chankey Pathak 18.07.2011, 10:05
quelle

3 Antworten

15

Wie sollte ein Hash stringifizieren? Skalare sind offensichtlich und Arrays auch. Aber was sollte ein Hash sein? Wie nützlich wird eine solche Verschneidung sein? Ist es mehr oder weniger nützlich, ein% -Zeichen in einer interpolierenden Zeichenkette zu verwenden? Lohnt es sich, den gesamten Code, der% in interpolierten Strings verwendet, zu reparieren?

Wenn Sie auf diese Fragen gute Antworten finden können, bin ich sicher, dass P5P bereit wäre, ihnen zuzuhören.

    
Chas. Owens 18.07.2011, 13:24
quelle
21

Um Nathan Torkington zu zitieren: "Das große Problem ist, dass% in Strings mit doppelten Anführungszeichen mit printf stark verwendet wird." Weitere Informationen finden Sie hier .

    
Kilian Foth 18.07.2011 10:12
quelle
4

Nicht wirklich eine Antwort auf das "warum", aber ich dachte, ich würde verschiedene Antworten auf das "wie" zeigen.

Man könnte natürlich versuchen:

%Vor%

Aber ich weiß nicht, welcher Nutzen das wäre.

Wenn Sie den Inhalt eines Hashs oder einer anderen komplizierten Datenstruktur ausgeben möchten, verwenden Sie Data :: Dumper oder YAML oder JSON abhängig von Ihrem Anwendungsfall.

    
Sinan Ünür 19.07.2011 02:54
quelle

Tags und Links