Mam skrypt Perl przetwarzanie potoku. W pewnym momencie chciałbym, aby skrypt zatrzymał się i poprosił o wprowadzenie klawiatury użytkownika. my $input = <STDIN>;
nie działa. Po prostu czyta następną linię z rury. Jak mogę sprawić, by Perl używał różnych uchwytów do wprowadzania rur i wprowadzania klawiatury?Jak zrobić, aby Perl używał różnych uchwytów do wprowadzania rur i wprowadzania klawiatury?
6
A
Odpowiedz
12
Jeśli korzystasz z platformy Unix, możesz otworzyć uchwyt pliku na /dev/tty
(lub użyć IO::Pty
).
Dobrym przykładem współpracy z tty w „Sprawdzanie czy program jest uruchomiony interaktywnie” przykład tutaj: http://pleac.sourceforge.net/pleac_perl/userinterfaces.html
Należy również rozważyć robi hasło IO poprzez Term::ReadKey
(opisany w perlfaq8) - myślę, że może to być związane z TTY zamiast STDIO, ale nie jestem pewien. Jeśli nie jest, użyj rozwiązania TTY + Term :: ReadKey wymienionego pod koniec this SO answer by brian d foy.
Oto przykład.
It's not the best style (doesn't use 3-arg form of open
, nor uses lexical filehandles) ale powinno działać.
use autodie; # Yay! No "or die '' "
use Term::ReadKey;
open(TTYOUT, ">/dev/tty");
print TTYOUT "Password?: ";
close(TTYOUT);
open(TTY, "</dev/tty");
ReadMode('noecho');
$password = ReadLine(0, *TTY);
Powiązane problemy
- 1. C# Wysyłanie wprowadzania klawiatury
- 2. Wyświetlenie podglądu UIPicker zamiast wprowadzania klawiatury iOS
- 3. Użyj klawiatury USB do wprowadzania tekstu w aplikacji SmartTV
- 4. Anomalia wprowadzania
- 5. Dlaczego moja kontrolka nie akceptuje wprowadzania danych z klawiatury?
- 6. Dodaj element do wprowadzania programowego
- 7. Symulowanie wprowadzania danych z klawiatury na poziomie systemu w C++
- 8. Klucz do wprowadzania danych JTable
- 9. Maska wprowadzania liczbowych i dziesiętnych
- 10. Jak zrobić pole wprowadzania akceptować tylko litery w javaScript?
- 11. Jak rozciągnąć pole wprowadzania do pełnej szerokości?
- 12. Funkcja szybkiego wprowadzania danych:
- 13. Wdrożenie maskę wprowadzania do UITextField
- 14. granica wprowadzania numeru JTextField
- 15. onfocus do wprowadzania formularzy, aby zmienić kolor obramowania?
- 16. Jak używać wyrażenia regularnego do sprawdzania poprawności wprowadzania miesięcy?
- 17. Zmiana typu UIKeyboardType na podstawie wprowadzania tekstu
- 18. Jak ustalić bieżący język wprowadzania?
- 19. Maska wprowadzania danych extjsRe
- 20. jQuery dodać wymagane do wprowadzania pól
- 21. Jak zrobić, aby kompozytor używał dokładnej wartości SHA1?
- 22. VBA do wprowadzania danych online i przesyłania formularza
- 23. Thymeleaf - Dodawanie warunkowego atrybutu do wprowadzania warunkowego
- 24. Wysokość wprowadzania pola tekstowego
- 25. Obsługa wprowadzania użytkownika za pomocą Raphaela
- 26. Etykieta do wprowadzania pliku w firefox
- 27. Ogranicz znaki do liter i cyfr w polu wprowadzania danych
- 28. JOptionPane - program okna dialogowego wprowadzania
- 29. Zapobieganie poziomemu "przewijaniu" wprowadzania tekstu?
- 30. Elementy wprowadzania formularzy nie centrujące
Problem rozwiązany. Wielkie dzięki. – Arkady
@Arkady - nie ma za co. Możesz zaakceptować odpowiedź, klikając zaznaczenie obok niej (to też da ci 2 punkty), a także oddać głos do góry (strzałka w górę obok) – DVK