Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!etnibsd!vsh From: vsh@etnibsd.UUCP (Steve Harris) Newsgroups: comp.lang.perl Subject: quasi-bug Message-ID: <1121@etnibsd.UUCP> Date: 26 Mar 90 20:30:54 GMT Organization: Eaton Corp, Semiconductor Equipment Div., Beverly, MA Lines: 27 I finally got around to upgrading to patch level 15 (from level 2) and, while running the test suite, discovered an interesting problem: in the test "op.stat", there is code that basically does: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- chdir '/usr/bin'; while (<*>) { # increment some counters, etc. } # if (counter not incremented) { print error message; } =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- which kept failing on my system. I inserted a couple print statements and discovered the main loop was not being entered! It looked like file name globbing was broken! A few more tests showed this failure happened in the /usr/bin directory only. Well, to make a long story short, there existed a file in /usr/bin named 0. That's right, the single digit zero. So it seems that the first time into the loop, the while test failed, i.e., the value returned by <*> was being interpreted as a numeric, not a string value! Now, regardless of the fact that a file named 0 probably does not belong in /usr/bin, is this the way the <*> construct should work??? -- Steve Harris - Eaton Corp. - Beverly, MA - uunet!etnibsd!vsh