in reply to Input problem with Enter key...
in thread Input problem with Enter key...

I am unable to (and, frankly, didn't expect to be able to) reproduce your problem in isolation. I tried this:

$ perl -e 'print "X: "; my $x = <STDIN>; print "X=", $x'

Regardless, of whether I terminate the input with <Enter>, Ctrl-J (newline) or Ctrl-M (carriage return), it works fine:

$ perl -e 'print "X: "; my $x = <STDIN>; print "X=", $x' X: 123 X=123 $

Adding '$|=0;' or '$|=1;', as the first statement, makes no difference: I get the same result as above (regardless of how I terminate the input).

Try what I did and see how you go. If it works OK, then there's probably something else in your code causing the problem; if it's still not working, look for issues with whatever shell you're running, non-standard keymapping, hardware problems (perhaps try starting a new shell or even rebooting).

— Ken

Replies are listed 'Best First'.
Input problem with Enter key...
by PriNet (Monk) on Nov 07, 2016 at 02:11 UTC
    i don't imagine it has anything to do with the fact i'm using strawberry on xp?

    I tried re-inventing the wheel again, but everytime I push it, it still falls flat on it's side...
      I sincerely doubt that XP or Strawberry has anything to do with this! This very simple program should work on any version of Perl and on any platform!
      use warnings; use strict; print "type something: "; my $input = <STDIN>; print "you typed", $input; # of course: # print "you typed $input"; # would be the same
      I don't know if you are using some kind of development environment to run the code or not? Save this .pl file verbatim and run it from the Windows XP command line - not from within any development environment.

      Before posting, I tested this on Win XP to avoid a typo problem. I am using an Active State build, but that shouldn't matter in the slightest.

        i'm going to try the suggested reboot... I hadn't tried that yet because i was watching this post, but i have a way around that here...

        I tried re-inventing the wheel again, but everytime I push it, it still falls flat on it's side...

      Only if you're trying to run this as a one liner, which is contrary to what you said in the OP.

      If, however, a one liner is at work, MSWin (of any flavor) will hate your quoting. Oversimplifying just a bit, Windows demands double quoting the entire "script" and use of escaping or one of the quote-like (q/single quoted text/ [no interpolation] or qq/double quoted text/ [interpolates]) alternatives in the spots where a script would use double-quotes.


      check Ln42!