Tôi là một người mới bắt đầu ở Perl (so với những người ở đây). Tôi biết đủ để có thể viết chương trình để làm nhiều việc với thông qua dấu nhắc lệnh. Tại một thời điểm, tôi quyết định viết một trò chơi nhắc lệnh đã xây dựng một mê cung và để tôi giải quyết nó. Bên cạnh đồ họa chất lượng, điều duy nhất mà nó bị thiếu là khả năng để tôi sử dụng các điều khiển WASD mà không cần nhấn enter sau mỗi lần di chuyển tôi đã thực hiện trong mê cung.Làm thế nào tôi có thể có Perl lấy đầu vào từ STDIN một ký tự cùng một lúc?
Để làm cho trò chơi của mình hoạt động, tôi muốn có Perl lấy một ký tự làm đầu vào từ STDIN mà không yêu cầu tôi sử dụng thứ gì đó để tách đầu vào của tôi, như mặc định \n
. Làm thế nào tôi sẽ thực hiện được điều này?
Tôi đã thử tìm kiếm một câu trả lời đơn giản trực tuyến và trong một cuốn sách mà tôi có, nhưng tôi dường như không tìm thấy bất cứ điều gì. Tôi đã thử thiết lập $/=""
, nhưng điều đó dường như bỏ qua tất cả đầu vào. Tôi nghĩ rằng có thể có một câu trả lời thực sự đơn giản cho câu hỏi của tôi, nhưng tôi cũng sợ rằng nó có thể là không thể.
Ngoài ra, hiện $/=""
có thực sự bỏ qua đầu vào hay không, đầu vào nhanh đến mức giả định không có bất kỳ đầu vào nào nếu tôi chưa nhấn phím?
[Thời hạn :: ReadKey] (http://search.cpan.org/perldoc?Term::ReadKey) – ikegami
@ikegami Tuyệt vời! – PhiNotPi
Có thể trùng lặp [Làm cách nào để đọc một ký tự đơn từ STDIN bằng Perl trên Windows?] (Https://stackoverflow.com/questions/2021482/how-do-i-read-a-single-character-from-stdin -cho-per-on-windows) –