use strict; use warnings; my $next = 0; my (@stamp, @name); while (){ chomp; ($stamp[$next], $name[$next]) = $_ =~ m/([a-z]{3}(?:\s[0-9]{2}){2}:[0-9]{2})\s(\/.+\.Z)/i; print "\$name[\$next]: $name[$next]\n"; print "\$stamp[\$next]: $stamp[$next]\n"; $next++; } __DATA__ Jun 05 20:08 /test/B1006-cnvexp.20060605.200841.Z Jun 05 20:09 /test/B1106-cnvexp.20060605.2008.Z Jun 05 20:09 /test/B11062-cnvexp.20060605.2008.Z Output is: $name[$next]: /test/B1006-cnvexp.20060605.200841.Z $stamp[$next]: Jun 05 20:08 $name[$next]: /test/B1106-cnvexp.20060605.2008.Z $stamp[$next]: Jun 05 20:09 $name[$next]: /test/B11062-cnvexp.20060605.2008.Z $stamp[$next]: Jun 05 20:09