in reply to Debugger: I must be missing something

Setting breakpoints in other files - That's the way I do it. I have not heard of a better way. Just set a breakpoint at the point to step-in, step-in at that point and then set another break point when you're in the other file. There maybe another way but it hasn't been a big enough pain for me to look.

Taming the printing of @_ — You're in a perl interpreter so, p $_[3]->{foo} will work. I also will use Data::Dumper; p Dumper \@_ in the debugger. I set my terminal to scoll 5000 lines to scroll over the result.

Fumble fingers and stacktrace — I would setup another terminal window with a small script that runs the part of the regex you're interested in. You can w $data to get the current value being evaluated. Then test it in you other window.

One key history — The debugger will repeat the last command if you just hit return.

grep
XP matters not. Look at me. Judge me by my XP, do you?