use strict; use warnings; foreach my $test ('..', 'file.txt', 'blah.abc.txt') { my ($suffix) = $test =~ /(\.[^.]+)$/; $suffix //= ''; #suffix is null string if no match print "test=$test suffix=$suffix\n"; } __END__ test=.. suffix= test=file.txt suffix=.txt test=blah.abc.txt suffix=.txt