#!/usr/bin/perl $hr = (localtime(time))[2]; if ($hr == 0) { $hr = 23; @tdate = localtime(time - 86400); } else { $hr -= 1; @tdate = localtime(time); } $day = $tdate[3]; $mon = $tdate[4] + 1; $yr = $tdate[5] + 1900; $fname = sprintf("files.%4d%02d%02d%02d*.gz", $yr, $mon, $day, $hr); `cp /foo/$fname /bar/`;