You can only create a single object of Term::ReadLine if the Term::ReadLine::Perl 'personality' is being used.
Behold
C:\tmp>perl foo.pl
What is your default prog. lang? [Perl]:
What is your OS? [MacOS]:
C:\tmp>perl -I Term-ReadLine-Perl-1.0303\blib\lib foo.pl
What is your default prog. lang? [Perl]:
Cannot create second readline interface, falling back to dumb.
What is your OS? [MacOS]:
C:\tmp>
And this limitation isn't just a MSWin32 thing:
[canker:]$ perl foo.pl
What is your default prog. lang? [Perl]:
What is your OS? [MacOS]:
[canker:]$ perl -ITerm-ReadLine-Perl-1.0303/blib/lib foo.pl
What is your default prog. lang? [Perl]:
Cannot create second readline interface, falling back to dumb.
What is your OS? [MacOS]:
Forcing Term::ReadLine to load the Stub personality should work fine.
use strict;
use warnings;
BEGIN {
$ENV{PERL_RL}='Stub';
};
use Term::UI;
use Term::ReadLine;
my $term = Term::ReadLine->new('lang');
my $reply = $term->get_reply( prompt => 'What is your default prog. la
+ng?', default => 'Perl');
my $term2 = Term::ReadLine->new('OS');
$reply = $term2->get_reply( prompt => 'What is your OS?', default => '
+MacOS');
And it does
C:\tmp>perl -I Term-ReadLine-Perl-1.0303\blib\lib foo.pl
What is your default prog. lang? [Perl]:
What is your OS? [MacOS]:
C:\tmp>
And on a non-MSWin32 OS too
[canker:]$ perl -ITerm-ReadLine-Perl-1.0303/blib/lib foo.pl
What is your default prog. lang? [Perl]:
What is your OS? [MacOS]:
[canker:]$