in reply to what does my ($subdir, @keywords) = split; do.
You're right on the money. In this case, the list taking the results from split consists of $subdir and the array @keywords. So $subdir gets the first item, and @keywords gets all the rest. This is a common idiom in Perl, where you often see things like my ($first, $second, @rest) = @foo;.