First it declares and scopes $k. Then it asks if $dir has a value (in other words, it's not undef). If that is true it then tries to capture everything up to a slash (careful, this looks unpredictable to me, might pass over multiple /'s) and place it into $1. If that succedes, it sets $back_one to $1.
Hope this helps.
My code doesn't have bugs, it just develops random features.
Flame ~ Lead Programmer: GMS (DOWN) | GMS (DOWN)