X-Git-Url: http://git.rot13.org/?p=perl-Redis.git;a=blobdiff_plain;f=lib%2FRedis.pm;h=10594cd49244f21ae84d4abe2837d37e618f06a4;hp=70df1ef0146b4d8840bcec6277197563636a4d7c;hb=14f9ac6110d126004b38b292b3e7002f84519629;hpb=5a3c0198879093b421c664c381d4bdc6a68eb1e8 diff --git a/lib/Redis.pm b/lib/Redis.pm index 70df1ef..10594cd 100644 --- a/lib/Redis.pm +++ b/lib/Redis.pm @@ -79,6 +79,23 @@ sub _sock_result_bulk { _sock_read_bulk(); } +sub _sock_result_bulk_list { + my $self = shift; + warn "## _sock_result_bulk_list ",dump( @_ ); + + my $size = $self->_sock_send( @_ ); + confess $size unless $size > 0; + $size--; + + my @list = ( 0 .. $size ); + foreach ( 0 .. $size ) { + $list[ $_ ] = _sock_read_bulk(); + } + + warn "## list = ", dump( @list ); + return @list; +} + sub __sock_ok { my $ok = <$sock>; return undef if $ok eq "nil\r\n"; @@ -317,18 +334,7 @@ sub llen { sub lrange { my ( $self, $key, $start, $end ) = @_; - my $size = $self->_sock_send('LRANGE', $key, $start, $end); - - confess $size unless $size > 0; - $size--; - - my @list = ( 0 .. $size ); - foreach ( 0 .. $size ) { - $list[ $_ ] = _sock_read_bulk(); - } - - warn "## lrange $key $start $end = [$size] ", dump( @list ); - return @list; + $self->_sock_result_bulk_list('LRANGE', $key, $start, $end); } =head2 ltrim @@ -443,6 +449,17 @@ sub sismember { $self->_sock_send_bulk_number( 'SISMEMBER', $key, $member ); } +=head2 sinter + + $r->sinter( $key1, $key2, ... ); + +=cut + +sub sinter { + my $self = shift; + $self->_sock_result_bulk_list( 'SINTER', @_ ); +} + =head1 AUTHOR Dobrica Pavlinusic, C<< >>