in reply to time in seconds

Small confusion to clear up: time returns seconds-since-epoch (ie 1970). gmtime() converts seconds-since-epoch into either a readable string or an array of hours and minutes and so on depending on whether it's called in scalar or list context. Performing backflips to parse a gmtime(time) string into seconds would not be effort well spent.

So the seconds counter is easy, as Hofmator shows. But it probably isn't good enough: two people could very easily use your script during the same second if, as you say, there are a large number of them.

Here are a few other options to consider:

seconds . ip address; # if on web. has anonymity implications seconds . username; # if command-line. also not anonymous $ENV{UNIQUE_ID}; # if in apache & compiled with mod_unique_id use Time::HiRes; # microseconds.

or then there's Apache::Session, which would be overkill to start with but might save you some days later.