use strict; my $return_code = "0" ; my $sleep_time, $return_code ; sub printTime { my $time = localtime() ; print "Date/Time: $time\n" ; } my $number_args = $#ARGV + 1 ; if ( $number_args == 1 ) { $sleep_time = $ARGV[0] ; } elsif ( $number_args > 1 && $number_args <= 3 ) { my $sleep_min = $ARGV[0] ; my $sleep_max = $ARGV[1] ; my $ec = $ARGV[2] ; if ( $sleep_min > $sleep_max ) { print "Minimum time of ${sleep_min}secs is greater than maximum time of ${sleep_max}secs, exiting!\n" ; exit 1 ; } $sleep_time = $sleep_min + int rand $sleep_max - $sleep_min + 1 ; my $hrs = int( $sleep_time / (60*60) ) ; if ( $ec > 0 ) { $return_code = $sleep_time % 2 ; } my $min = int( ($sleep_time - $hrs*60*60) / (60) ) ; my $sec = int( $sleep_time - ($hrs*60*60) - ($min*60) ) ; print("Run time: ${hrs}hrs, ${min}mins and ${sec}secs. return code ${return_code}.\n") ; }elsif ( $number_args > 3 ) { print "Usage: $0 \n" ; print " sleep_min - Minimum secs to run\n" ; print " sleep_max - Maximum secs to run\n" ; print " return_code - [OPTIONAL] generate script return code based on sleep time. Odd creates rc=1\n" ; exit 1 ; } printTime() ; sleep($sleep_time) ; printTime() ; exit $return_code ;