无法在Runtime.pm中找到OAuth.pm。 Net :: Twitter模块

时间:2011-12-27 22:29:53

标签: perl twitter

我有这样的脚本:(Script.pl)

#!/usr/bin/perl
use strict;
use warnings;
use encoding 'utf-8';
use FindBin;
use lib "$FindBin::Bin/lib";
use TwitterModule;
use IO::Prompt;

# Read keys from file
open KEYS, "<keys.txt" or die $!;
my ($ckey, $csecret, $atocken, $asecret) = <KEYS>;

# Auth
my $nt = TwitterModule::auth($ckey, $csecret, $atocken, $asecret) ;

# Other code skipped.

和这样的模块:(lib / TwitterModule.pm)

package TwitterModule;
use strict;
use warnings;
use utf8;
use encoding 'utf8';
use base 'Exporter';
use Net::Twitter;

BEGIN {
    use Exporter();

    our $VERSION = '0.01b'; 
    our @EXPORT_OK = qw(&auth);
    our %EXPORT_TAGS = (
        'functions' => [ qw(&auth) ]
    );

    # add all the other ":class" tags to the ":all" class, deleting duplicates

    my %seen;
    push @{$EXPORT_TAGS{all}},
        grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS;
}

### Common variables ###
# Make connection
sub auth {
    my ($ckey, $csecret, $atocken, $asecret) = @_;

    my $cn = Net::Twitter->new(
        traits              => [qw/Oauth API::REST/],
        consumer_key        => $ckey,
        consumer_secret     => $csecret,
        access_tocken       => $atocken,
        access_token_secret => $asecret
    );
    return $cn;
}

# Other code skipped
# return true
1

然后,我执行我的脚本并获得它:&#34;无法在@INC中找到Net / Twitter / Role / Oauth.pm(@INC包含:/ home / rasmi / work / my_project / lib / usr / lib / perl5 / site_perl / usr / share / perl5 / site_perl / usr / lib / perl5 / vendor_perl / usr / share / perl5 / vendor_perl / usr / lib / perl5 / core_perl / usr / share / perl5 / core_perl。)在/usr/share/perl5/vendor_perl/Module/Runtime.pm第205行第4行/home/rasmi/work/my_project/lib/TwitterModule.pm第6行&#34;

我安装了Net :: Twitter和所有必需的工具,并在两台机器上进行了测试。如果我在没有模块的情况下使用Net :: Twitter,在一个脚本中,一切正常。文件/usr/share/perl5/vendor_perl/Net/Twitter/Role/Oauth.pm存在。

我对此行为感到非常惊讶,并非常感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

看起来拼写为Net::Twitter::Role::OAuth - 注意首都'A'。你可能是一个区分大小写的文件系统。

更正auth子程序中的行:

traits              => [qw/OAuth API::REST/],

它可能会开始工作。