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'.