2010-05-21 38 views

Trả lời

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

Đừng làm điều này. Nó không xử lý bất kỳ trường hợp đặc biệt nào. –

2

Tham gia danh sách bằng dấu phẩy.

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

Bạn có một số tùy chọn. Các chung nhất là tham gia cùng họ với join chức năng:

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

Một cách khác là để sửa đổi special variables, mà ảnh hưởng đến print tuyên bố. Ví dụ, tác động của một trên có thể đạt được với

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

Bạn cũng có thể tự động gia nhập danh sách nếu nó trải dụng dấu ngoặc kép mở rộng:

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

Lưu ý rằng nếu bạn sửa đổi các biến đặc biệt như $, , $\ hoặc $", bạn đặt chúng trên toàn cầu. Để tránh điều đó, hãy sử dụng từ khóa local và bao gồm toán hạng trong một khối.

5

Đối với trường hợp đơn giản, join là hoàn hảo.

Nhưng nếu bạn muốn tạo hoặc phân tích cú pháp tệp CSV, bạn nên sử dụng Text::CSV. Nó sẽ xử lý trích dẫn và thoát khỏi dấu phẩy và tất cả các loại vấn đề độc hại khác cho bạn. Nó cũng rất nhanh.

+0

Một lần nữa, dẫn đầu với câu trả lời sai! :) Không có trường hợp đơn giản. Chỉ có dữ liệu thử nghiệm đơn giản không hiển thị tất cả các trường hợp trong thế giới thực. –

+3

Vâng, @ brian, có những trường hợp đơn giản. Ví dụ: bạn có thể dễ dàng xử lý thông số hoặc tiêu chuẩn cho biết "Giá trị dữ liệu CÓ THỂ KHÔNG chứa dấu phẩy". Có phải 'tham gia' đúng cách để tạo tệp CSV trong trường hợp chung không? Không chắc chắn không. Nhưng OP hỏi làm thế nào để in một danh sách các giá trị bằng dấu phẩy sau mỗi lần trừ giá trị cuối cùng - không có gì về kết quả là máy phân tích cú pháp hoặc thoát/trích dẫn bất cứ điều gì hoặc bất kỳ yêu cầu nào khác ngoại trừ việc đặt dấu phẩy giữa các giá trị liền kề - và đó là * chính xác * những gì 'join' làm. –

+0

Theo kinh nghiệm của tôi, ngay cả những thông số kỹ thuật nói rằng cuối cùng sẽ thay đổi, và nếu bạn định giới thiệu các phím tắt, bạn cần phải nhấn mạnh những cạm bẫy. Nếu không, mọi người lấy phím tắt và tự làm tổn thương sau này. –

Các vấn đề liên quan