2

Perl の Expect モジュールを C:\strawberry\perl\lib にインストールしました。

前提条件として、perl がインストールされているのと同じ場所に最初に IO-Tty モジュールをインストールしました。

今私がやっているなら

use Expect;

エラー吐いてます

Can't locate IO/Pty.pm in @INC (@INC contains: C:/strawberry/perl/site/lib C:/st
rawberry/perl/vendor/lib C:/strawberry/perl/lib .) at C:/strawberry/perl/lib/Exp
ect.pm line 22.
BEGIN failed--compilation aborted at C:/strawberry/perl/lib/Expect.pm line 22.
Compilation failed in require at croak.txt line 1.
BEGIN failed--compilation aborted at croak.txt line 1.

考えられる理由は

  1. Perl は、Expect.pm から呼び出される IO::Pty および IO::Tty モジュールを探しています。しかし、IO::Tty モジュールをインストールすると、Pty.pm と Tty.pm という名前の 2 pm ファイルが作成されます。

    package Expect;
    
    use IO::Pty 0.97;       # We need make_slave_controlling_terminal()
    use IO::Tty;
    

しかし、perl は IO::Tty モジュールを探しています。

これが問題の原因ですか。はいの場合、どうすれば前進できますか

4

2 に答える 2

3

Expect は Windows では動作しません。

少なくともこれは、CPAN Resers の結果を見たときの私の印象です。次の表: http://matrix.cpantesters.org/?dist=Expect;maxver=1 は、Windows での Expect の PASS がまったくなかったことを示しています。

また、Expect のドキュメントでは、モジュールが ActivePerl で動作しないことが説明されており、代わりに cygwin を使用することを推奨しています: https://metacpan.org/module/RGIERSIG/Expect-1.21/Expect.pod#Can-I-use-this-module- with-ActivePerl-on-Windows。また、Expect は StrawberryPerl でも動作しないと思います。

于 2013-09-25T08:02:30.247 に答える