in reply to Re^2: array element return syntax
in thread array element return syntax

  1. time returns a number that represents the number of seconds since the start of the epoch.
  2. localtime(time) returns a list of values that represent the seconds, minutes, etc. in the local time zone
  3. (localtime(time))[2] indexes into the list (a convenience that perl allows) and returns the 3rd item in the list
  4. print((localtime(time))[2]) outputs the 3rd item in the list returned by localtime

The only "weird" part might be why there are extra parens on the print. I.e., why not

print (localtime(time))[2];
And the answer is precedence. To perl, that looks like a function call (to the print function) with a parameter of localtime(time). So it's really
print(...)[2];
Which doesn't make any sense, so perl tells you so.