sub FileTimeToSystemTime ($) { my $input= shift; # binary data formatted as an int64 my $output= '.' x 16; # 16 byte structure output. my $result= $f->Call ($input, $output); # ... check $result for errors. my @retval= unpack ("v*", $output); # Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds unless (wantarray) { # ... format this into a ctime-like string return $string; } ### here is the interesting part: unshift @retval, \@names; return @retval; } #### my ($names, $Year, $Month, $DayOfWeek, $Day, $Hour, $Minute, $Second, $Milliseconds)= FileTimeToSystemTime ($int64); #### my $value= \(FileTimeToSystemTime ($int64)); my $Day= $value->{Day}; # ... etc.