77 |
_sock_read_bulk(); |
_sock_read_bulk(); |
78 |
} |
} |
79 |
|
|
80 |
sub _sock_ok { |
sub __sock_ok { |
81 |
my $ok = <$sock>; |
my $ok = <$sock>; |
82 |
confess dump($ok) unless $ok eq "+OK\r\n"; |
confess dump($ok) unless $ok eq "+OK\r\n"; |
83 |
} |
} |
93 |
my $self = shift; |
my $self = shift; |
94 |
warn "## _sock_send_ok ",dump( @_ ); |
warn "## _sock_send_ok ",dump( @_ ); |
95 |
print $sock join(' ',@_) . "\r\n"; |
print $sock join(' ',@_) . "\r\n"; |
96 |
_sock_ok(); |
__sock_ok(); |
97 |
|
} |
98 |
|
|
99 |
|
sub __sock_send_bulk_raw { |
100 |
|
my $self = shift; |
101 |
|
warn "## _sock_send_bulk ",dump( @_ ); |
102 |
|
my $value = pop; |
103 |
|
print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n"; |
104 |
} |
} |
105 |
|
|
106 |
sub _sock_send_bulk { |
sub _sock_send_bulk { |
107 |
my ( $self, $command, $key, $value ) = @_; |
__sock_send_bulk_raw( @_ ); |
108 |
print $sock "$command $key " . length($value) . "\r\n$value\r\n"; |
__sock_ok(); |
|
_sock_ok(); |
|
109 |
} |
} |
110 |
|
|
111 |
|
sub _sock_send_bulk_number { |
112 |
|
__sock_send_bulk_raw( @_ ); |
113 |
|
my $v = _sock_result(); |
114 |
|
confess $v unless $v =~ m{^\-?\d+$}; |
115 |
|
return $v; |
116 |
|
} |
117 |
|
|
118 |
=head1 Connection Handling |
=head1 Connection Handling |
119 |
|
|
338 |
$self->_sock_send_ok( 'LTRIM', $key, $start, $end ); |
$self->_sock_send_ok( 'LTRIM', $key, $start, $end ); |
339 |
} |
} |
340 |
|
|
341 |
|
=head2 lindex |
342 |
|
|
343 |
|
$r->lindex( $key, $index ); |
344 |
|
|
345 |
|
=cut |
346 |
|
|
347 |
|
sub lindex { |
348 |
|
my ( $self, $key, $index ) = @_; |
349 |
|
$self->_sock_result_bulk( 'LINDEX', $key, $index ); |
350 |
|
} |
351 |
|
|
352 |
|
=head2 lset |
353 |
|
|
354 |
|
$r->lset( $key, $index, $value ); |
355 |
|
|
356 |
|
=cut |
357 |
|
|
358 |
|
sub lset { |
359 |
|
my ( $self, $key, $index, $value ) = @_; |
360 |
|
$self->_sock_send_bulk( 'LSET', $key, $index, $value ); |
361 |
|
} |
362 |
|
|
363 |
|
=head2 lrem |
364 |
|
|
365 |
|
$r->lrem( $key, $count, $value ); |
366 |
|
|
367 |
|
=cut |
368 |
|
|
369 |
|
sub lrem { |
370 |
|
my ( $self, $key, $count, $value ) = @_; |
371 |
|
$self->_sock_send_bulk_number( 'LREM', $key, $count, $value ); |
372 |
|
} |
373 |
|
|
374 |
=head1 AUTHOR |
=head1 AUTHOR |
375 |
|
|
376 |
Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >> |
Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >> |