[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19643: 24.2; shell mode
From: |
Alexis |
Subject: |
bug#19643: 24.2; shell mode |
Date: |
Wed, 21 Jan 2015 15:15:58 +1100 |
twilliam@twilliam.org writes:
> I'm trying to use shell mode. In fact, I'm trying to run a Perl
> program in shell mode. I launch the program, and it runs. Input from
> a file is read, processed. Output (to STDOUT) is printed to *shell*.
> Trouble is I can't read keyboard input (as in <STDIN>). What am I
> missing (except a brain)?
>
> Ok, this is Emacs 24.2.1 running on Windows XP.
>
> I downloaded Perl from ActiveState in 2011. Here's a simple Perl
> program that demos the problem:
>
> print "Give me a number: ";
> chomp ( $Anumber = <STDIN> );
> print "Give me another: ";
> chomp ( $Bnumber = <STDIN> );
> $product = $Anumber * $Bnumber;
> print "$Anumber times $Bnumber = $product\n";
>
> It works fine in a DOS window. In emacs shell mode it tells me this
>
> Use of uninitialized value $Anumber in chomp at c:\Perl\ex2-4.pl line 3.
> Use of uninitialized value $Bnumber in chomp at c:\Perl\ex2-4.pl line 5.
> Use of uninitialized value $Bnumber in multiplication (*) at c:\Perl\ex2-4.pl
> line 6.
> Use of uninitialized value $Anumber in multiplication (*) at c:\Perl\ex2-4.pl
> line 6.
> Use of uninitialized value $Anumber in concatenation (.) or string at
> c:\Perl\ex2-4.pl line 7.
> Use of uninitialized value $Bnumber in concatenation (.) or string at
> c:\Perl\ex2-4.pl line 7.
> Give me a number: Give me another: times = 0
>
> Perl is complaining about uninitialized values before it has even
> printed the prompts for them.
Off the top of my head, my guess is that, when run from shell-mode, Perl
is being called with the `-w` switch (which gives one warnings about
certain constructs that might indicate programmer error), whereas you're
not calling your script with the `-w` switch when calling it from the
DOS window. See the `perlrun` man page for info about `-w`.
So, do you get the above messages when you run your script from a DOS
window with warnings enabled, e.g.:
perl -w myscript.pl
?
Alexis.