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.