in reply to difference between utime and touch

I don't know about AIX. But in general, perl will use the utime library call (see 'man utime'). Maybe 'touch' uses another call, or maybe it's setuid? Do an 'strace touch $dir' to see what touch actually does. 'man touch' may provide extra info about the library call, as does 'ldd `which touch`'. Alternatively, strace a perl oneliner with the utime statement, or look into the perl source code.

Hope this helps,

Jeroen
"We are not alone"(FZ)
Update: If 'touch' is setuid indeed, I would call it a security flaw to be fixed. Check if perl is set suid as well (ya know, the s appearing in 'ls -l'.