63 |
warn "## bulk len: ",dump($len); |
warn "## bulk len: ",dump($len); |
64 |
return undef if $len eq "nil\r\n"; |
return undef if $len eq "nil\r\n"; |
65 |
my $v; |
my $v; |
66 |
read($sock, $v, $len) || die $!; |
if ( $len > 0 ) { |
67 |
warn "## bulk v: ",dump($v); |
read($sock, $v, $len) || die $!; |
68 |
|
warn "## bulk v: ",dump($v); |
69 |
|
} |
70 |
my $crlf; |
my $crlf; |
71 |
read($sock, $crlf, 2); # skip cr/lf |
read($sock, $crlf, 2); # skip cr/lf |
72 |
return $v; |
return $v; |
81 |
|
|
82 |
sub __sock_ok { |
sub __sock_ok { |
83 |
my $ok = <$sock>; |
my $ok = <$sock>; |
84 |
|
return undef if $ok eq "nil\r\n"; |
85 |
confess dump($ok) unless $ok eq "+OK\r\n"; |
confess dump($ok) unless $ok eq "+OK\r\n"; |
86 |
} |
} |
87 |
|
|
103 |
my $self = shift; |
my $self = shift; |
104 |
warn "## _sock_send_bulk ",dump( @_ ); |
warn "## _sock_send_bulk ",dump( @_ ); |
105 |
my $value = pop; |
my $value = pop; |
106 |
print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n"; |
$value = '' unless defined $value; # FIXME errr? nil? |
107 |
|
print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n" |
108 |
} |
} |
109 |
|
|
110 |
sub _sock_send_bulk { |
sub _sock_send_bulk { |