perl – 为什么在使用Net :: Cassandra :: Easy和Cassandra 0.5x插入行时会出错?

前端之家收集整理的这篇文章主要介绍了perl – 为什么在使用Net :: Cassandra :: Easy和Cassandra 0.5x插入行时会出错?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用Perl模块 Net::Cassandra::Easy与Cassandra连接时,我使用以下代码从列族Standard1中的行row [123]读取colums col [123]:

my $cassandra = Net::Cassandra::Easy->new(keyspace => 'Keyspace1',server => 'localhost');
$cassandra->connect();
my $result = $cassandra->get(['row1','row2','row3'],family => 'Standard1',byname => ['col1','col2','col3']);

这按预期工作.

但是,当试图插入行row1时…

$result = $cassandra->mutate(['row1'],insertions => { "col1" => "Value to set." });

..我收到错误消息不能使用字符串(“0”)作为SCALAR ref,而在“/ Net / GenThrift / Thrift / BinaryProtocol.pm”第376行使用“strict refs”.

我究竟做错了什么?

解决方法

它看起来像库中的一个错误

sub readByte
{
    my $self  = shift;
    my $value = shift;

    my $data = $self->{trans}->readAll(1);
    my @arr = unpack('c',$data);
    $$value = $arr[0];    # <~ line 376
    return 1;
}

(自Net::GenThrift::Thrift::BinaryProtocol起)

显然,sub是从库中的某个地方调用的,其中$value不是变量,而是一个常量标量.我会向作者报告这个错误.

猜你在找的Perl相关文章