in reply to please explain (regular expression)

Hi Anonymous Monk,

my $k; if (defined($dir)) { $back_one = $1 if $dir =~/(.*)\/.*$/;

$k is a lexical variable. It's scope ( where it can be seen ) is limited to 'main' ( outside of all subroutines ) unless it has been passed as a parameter.
$dir is being analyzed for it's value. If it isn't 'undef', then search through $dir looking for a match of zero or more characters ( .* ) followed by a '\' then zero or more characters on the end of the string denoted by the '$'. The first pattern is enclosed in parentheses. This will store the match in $1. If there were other parentheses, they would store their matches in $2, $3, etc. $1 is then assigned to $back_one.

Hope this helps,
-Katie.