2010-05-21 13 views

Antwort

13
print join(',', @list), "\n"; 
+1

Tun Sie dies nicht. Es behandelt keinen der Spezialfälle. –

2

Treten Sie die Liste mit einem Komma.

@list=(1,2,3); 
$output = join(",",@list); 
9

Sie haben mehrere Möglichkeiten. Die allgemeinste ist sie mit join Funktion zu verbinden:

print join(',', @list), "\n"; 

Der andere Weg ist special variables, die print Aussage beeinflussen zu ändern. Beispielsweise kann die Wirkung der oben eines mit

$, = ","; 
$\ = "\n"; 
print @list; 

erreicht werden kann Sie auch Liste automatisch beitreten, wenn es in doppelten Anführungszeichen Expansion erfährt:

$" = ","; 
print "@list","\n"; 

Beachten Sie, dass, wenn Sie spezielle Variablen ändern wie $, , $\ oder $", legen Sie sie global fest. Um dies zu vermeiden, verwenden Sie das Schlüsselwort local und schließen Sie die Operanden in einem Block ein.

5

Für einfache Fälle ist join perfekt. Wenn Sie CSV-Dateien erstellen oder analysieren möchten, sollten Sie besser verwenden Es behandelt das Zitieren und Entkommen von Kommas und alle möglichen anderen schädlichen Probleme für Sie. Es ist auch sehr schnell.

+0

Wieder mit der falschen Antwort! :) Es gibt keine einfachen Fälle. Es gibt nur einfache Testdaten, die nicht alle realen Fälle zeigen. –

+3

Ja, @ Brian, es gibt einfache Fälle. Zum Beispiel können Sie leicht mit einer Spezifikation oder einem Standard umgehen, die besagt: "Die Datenwerte dürfen keine Kommas enthalten." Ist "Join" der richtige Weg, um CSV-Dateien im allgemeinen Fall zu erstellen? Nein, definitiv nicht. Aber das OP fragte, wie man eine Liste von Werten mit einem Komma nach jedem außer dem letzten druckt - nichts über das Ergebnis, das maschinell geparst werden kann oder irgendetwas oder andere Anforderungen entkommt/quotiert, außer Komma zwischen benachbarten Werten zu setzen - und das ist genau * Was 'Join' tut. –

+0

Meiner Erfahrung nach, sogar Spezifikationen, die sagen, dass sich am Ende ändern, und wenn Sie Abkürzungen empfehlen, müssen Sie die Fallstricke betonen. Ansonsten nehmen die Leute die Abkürzung und verletzen sich später. –

Verwandte Themen