Nếu tôi có băm trong Perl chứa ánh xạ nguyên hoàn chỉnh và tuần tự (nghĩa là tất cả các phím từ 0 đến n được ánh xạ tới thứ gì đó, không có khóa nào bên ngoài), có phương tiện chuyển đổi này thành một mảng?Perl, chuyển đổi băm thành mảng
Tôi biết tôi có thể lặp qua các cặp khóa/giá trị và đặt chúng vào một mảng mới, nhưng có điều gì đó cho tôi biết phải có phương tiện tích hợp để thực hiện việc này.
** CẢNH BÁO RANT! ** Tại sao mọi người muốn sắp xếp các phím? Không cần và nó làm cho thuật toán chậm hơn rất nhiều! Sắp xếp chậm! Câu trả lời của ** runrig ** là câu trả lời hay nhất ở đây. Nó sẽ hoạt động nếu giá trị băm nhỏ. Mảng duy trì trật tự nhưng chúng là các cấu trúc truy cập ngẫu nhiên. Chúng tôi không làm việc với danh sách liên kết, mọi người! – daotoad
Bạn nói đúng: có cách để thực hiện nó. Xem [Câu trả lời của Ether] (http://stackoverflow.com/questions/2907270/perl-convert-hash-to-array/2907469#2907469). :) Câu hỏi này là một lý do khác tại sao có sự khác biệt giữa ngữ cảnh danh sách và mảng.Cùng với các slice, nó cho phép bạn thực hiện chuyển đổi giữa các danh sách và các hash mà không cần bất kỳ phép thuật hoặc phép lặp nào đặc biệt, và imho là một trong những tính năng mạnh mẽ nhất của Perl. –