Currently we use perls native `lstat()`, which returns the time values as integer seconds as in the old days (`time_t` type) For modification we use perls native `utime()` which also uses integer seconds. We already use `utimensat()`, which is the system call to use `struct timespec` type but only for the purpose of setting times for symbolic links with `AT_SYMLINK_NOFOLLOW` and with the nanoseconds set to 0. Maybe we can use `lstat`and `utime` of `Time::HiRes`. I'm not sure if this give the full `struct timespec` nanoseconds resolution, though. It converts the time values to perl scalar number values. In theory, these could have any resolution (when stored internally as a string) but Time::HiRes might use other types internally. If we change something here we should bear in mind that existing copies of files might look different from the original files because of the former truncation of time values.