ingydotnet/io-all-pm — pull request #21 by shlomif (2014-01-04 10:05:16+00:00)
Title: Add a fix for io->file("foobar")->assert.

Hi!

Please consider merging these changes, as the functionality of IO::All is broken on some recent versions of GNU/Linux (and it breaks Spork and other things):

This is a fix for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733680 .

$ ls -l; echo foo | perl -MIO::All -e 'io("-") > io->file("./bar")->assert'; ls -l
total 0
Can't open file './bar' for output:
Is a directory at -e line 1.
total 0
drwxr-xr-x 1 abe abe 0 Dec 30 23:51 bar/
$

The culprit appears to be that «-d ""» no longer returns true - it may be
a regression in glibc or the Linux kernel. Anyway, this commit
worksaround it, along with a test. I was able to reproduce it on very
old versions of IO::All so I don't know why it surfaced now.