in reply to readdir fails?
|| forces scalar context. Your code actually is:(@dir0) = readdir(ID) || print "Couldn't read directory contents.\n";
What you probably want, is:@dir0 = (readdir(ID) || 1); # assuming print doesn't fail
which is equal to:(@dir0 = readdir(ID)) || print "...";
(|| and or are not equal: || is tighter (see perlop).)@dir0 = readdir(ID) or print "...";
2;0 juerd@ouranos:~$ perl -MO=Deparse,-p -e'(@dir) = readdir(ID) || pr +int "X"' (@dir = (readdir(ID) || print('X'))); -e syntax OK
++ vs lbh qrpbqrq guvf hfvat n ge va Crey :)
Nabgure bar vs lbh qvq fb jvgubhg ernqvat n znahny svefg.
-- vs lbh hfrq OFQ pnrfne ;)
- Whreq
|
|---|