use strict; use warnings; my $dir = q{/some/path/to/afile}; print qq{\nMatching $dir\n}; print qq{\nWith parentheses, list context\n}; my ($fileName) = $dir =~ m{([^/]+)$}; print defined $fileName ? qq{-->$fileName<--\n} : qq{Not defined\n}; print qq{\nWithout parentheses, scalar context\n}; $fileName = $dir =~ m{([^/]+)$}; print defined $fileName ? qq{-->$fileName<--\n} : qq{Not defined\n}; $dir = q{/some/path/with/no/file/}; print qq{\nMatching $dir\n}; print qq{\nWith parentheses, list context\n}; ($fileName) = $dir =~ m{([^/]+)$}; print defined $fileName ? qq{-->$fileName<--\n} : qq{Not defined\n}; print qq{\nWithout parentheses, scalar context\n}; $fileName = $dir =~ m{([^/]+)$}; print defined $fileName ? qq{-->$fileName<--\n} : qq{Not defined\n};