If you use Perl's -l switch, you can simplify that further to just ...
perl -le 'print for <Q.PACES*>'
--k.
| [reply] [Watch: Dir/Any] [d/l] |
Right, this will work with the newest perls (>= 5.6), at least if you use glob() instead of <>.   The problem is: $ ls Hold/* |wc
/bin/ksh: /usr/bin/ls: arg list too long
0 0 0
$ ls Hold |wc
169170 169170 2739945
$ perl -lwe'@x=<"Hold/*">;print 0+@x'
0
$ perl -lwe'@x=glob"Hold/*";print 0+@x'
169170
$
Since 5.6 glob does not use a shell to expand filesystem wildcards.
update:   Gah! tye, of course, is right <Hold/*> is the same as glob"Hold/*".   (No '"'s inside <>.)
  p | [reply] [Watch: Dir/Any] [d/l] [select] |
glob"Hold/*"
glob("Hold/*")
<Hold/*>
but <"Hold/*"> is the same as glob('"Hold/*"'), which doesn't do what you want. I expected it to print 1 instead of 0 but it probably notes that there is no file named exactly Hold/* and so returns nothing.
-
tye
(but my friends call me "Tye") | [reply] [Watch: Dir/Any] [d/l] [select] |