in reply to question regarding slices

Unfortunately, that can't be done straight from the readdir list beacuse any such try would be clunky and require two calls, like this:
foreach(readdir(PRINT)[2...scalar(readdir(PRINT)-1])
Instead, try naming your array and then saying
foreach(@array[2..$#array]) ...
This will skip . and .. for you.

UPDATE: Whoops, I was beat. Sorry for reposting old info.
UPDATE 2 : DO NOT USE the method described above. As merlyn so expertly states, . and .. are not always the first files. The glob solution is particuarly pleasing, IMHO.