Warum wird ein Fehler ausgelöst, wenn Argumente an mein Ruby-Skript übergeben werden?

Ich benutzegets um die Ausgabe meines Skripts anzuhalten, bis der Benutzer die Eingabetaste drückt. Wenn ich meinem Skript keine Argumente übergebe, funktioniert es einwandfrei. Wenn ich jedoch irgendwelche Argumente an mein Skript übergebe, wird dies mit dem folgenden Fehler behoben:

ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
    from main.rb:74:in `gets'
    ...

Die Fehlermeldung zeigt das Argument, das ich an das Skript übergeben habe. Warum sollte man sich ARGV ansehen?

Ich verwende OptionParser, um meine Befehlszeilenargumente zu analysieren. Wenn ich benutzeparse! Anstatt vonparse (so entfernt es Dinge, die es aus der Argumentliste analysiert), dann funktioniert die Anwendung einwandfrei.

Es sieht also so aus, als würde ARGV aus irgendeinem Grund lesen. Warum? Wird das erwartet? Gibt es eine Möglichkeit, das nicht zu tun?gets() hat nicht geholfen).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage