For any script that takes more than just a few seconds to run, it's always a good idea to track the runtime itself. This is especially useful in the development stage, but it can also be a valuable resource for production scripts that are modified over time. You'd want to know if a recent change doubles your runtime, so maybe you can look for an alternative method. Here's how:
#!/usr/bin/perl -w
# This variable holds the current time #
local $now = time;
# Script processing goes here #
sleep 10;
# Calculate total runtime (current time minus start time) #
$now = time - $now;
# Print runtime #
printf("\n\nTotal running time: %02d:%02d:%02d\n\n", int($now / 3600), int(($now % 3600) / 60),
int($now % 60));
exit;
From here, you can keep a watchful eye on your scripts as they exit, or you can log these times to a file, and only look at them when you're wondering what's been taking so long. Knowing your runtimes helps to prevent inefficient code, and allows you to calculate larger batches.