…ings (called "the unicode bug").
In perl, string which are identical (eq operator) should behave as same strings. Fixing inconsistency when binary strings with UTF-8 flag set and flag clear behave different way. Intention of the module to consider all input and output data as binary data, proper way to implement this does not involve call to _utf8_off, instead it just works in pure-perl. If data with wide characters is sent (i.e. characters with code > 255), it's can't be downgaded, thus cannot be considered as binary string, thus exception "Wide characters in syswrite" is thrown. Fixes #95
Old logic causes subtle issues in some cases. Redis->new() remains behaves as used to be, connection to localhost:6379
In some cases (and notably FreeBSD), a read() on a socket which doesn't have data ready sets errno but returns 0. This confuses the library into thinking that we hit an end-of-file because the server closed the connection. Therefore, we need to check errno even when read() returns 0; in particular, EAGAIN means read() returned no data, but the socket is still alive and should not be closed.