Hello Peter.
As already told, there is no "ReadKey.pm" in a Knoppix and Suse 8.2
installation. ReadLine is available in both distries. But only under
Suse it works.
Here the results for ReadKey:
knoppix@p01kno:~$ perl -MTERM::ReadKey -e 0
Can't locate TERM/ReadKey.pm in @INC (@INC contains: /etc/perl
/usr/local/lib/perl/5.8.0 /usr/local/share/perl/5.8.0 /usr/lib/perl5
/usr/share/perl5 /usr/lib/perl/5.8.0 /usr/share/perl/5.8.0
/usr/local/lib/site_perl .).
BEGIN failed--compilation aborted.
knoppix@p01kno:~$ perl -dle 'print $INC{"Term/ReadKey.pm"}'
Loading DB routines from perl5db.pl version 1.19
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main:

-e:1): print $INC{"Term/ReadKey.pm"}
DB<1> c
Debugged program terminated. Use q to quit or R to restart,
use O inhibit_exit to avoid stopping after program termination,
h q, h R or h O to get additional info.
DB<1>
knoppix@p01kno:~$ perl -MCPAN -le 'print $INC{"Term/ReadKey.pm"}'
knoppix@p01kno:~$
> Are you sure that root doesn't have a
> different path causing it to run a different perl?
Yes, very shure. Under root it is the same effect.
And here the results for ReadLine:
knoppix@p01kno:~$ perl -dle 'print $INC{"Term/ReadKey.pm"}'
Loading DB routines from perl5db.pl version 1.19
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main:

-e:1): print $INC{"Term/ReadKey.pm"}
DB<1> c
Debugged program terminated. Use q to quit or R to restart,
use O inhibit_exit to avoid stopping after program termination,
h q, h R or h O to get additional info.
DB<1> q
knoppix@p01kno:~$ perl -MCPAN -le 'print $INC{"Term/ReadKey.pm"}'
knoppix@p01kno:~$ perl -MTERM::ReadLine -e 0
Can't locate TERM/ReadLine.pm in @INC (@INC contains: /etc/perl
/usr/local/lib/perl/5.8.0 /usr/local/share/perl/5.8.0 /usr/lib/perl5
/usr/share/perl5 /usr/lib/perl/5.8.0 /usr/share/perl/5.8.0
/usr/local/lib/site_perl .).
BEGIN failed--compilation aborted.
knoppix@p01kno:~$ perl -dle 'print $INC{"Term/ReadLine.pm"}'
Loading DB routines from perl5db.pl version 1.19
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main:

-e:1): print $INC{"Term/ReadLine.pm"}
DB<1> c
/usr/share/perl/5.8.0/Term/ReadLine.pm
Debugged program terminated. Use q to quit or R to restart,
use O inhibit_exit to avoid stopping after program termination,
h q, h R or h O to get additional info.
DB<1> q
knoppix@p01kno:~$ perl -MCPAN -le 'print $INC{"Term/ReadLine.pm"}'
knoppix@p01kno:~$
Hope this tells you more than me :=)
Best Regards, Kurt