You haven't included any code, so it's difficult to comment on why your attempts were fruitless and your code (did) not do what the remarks say.
You seem to have the program broken down into six reasonable components. Why not pick one or more, show us what you've done, and tell us what resulted? | [reply] [Watch: Dir/Any] |
my @menu_files = map m{([^/]+)\.txt}, @files;
Your @menu_files will be rather boring - 0 or 1.
You should use grep instead of map.
Update: wait, that's crap... but on the other hand the result might still not be what Nik expects - dunno | [reply] [Watch: Dir/Any] [d/l] [select] |
Actually, it would be an array of '' (the empty string) or 1 -- but still boring.
| [reply] [Watch: Dir/Any] |