in reply to perlman.pl only works in the debugger under cygwin

It seems to be the create_ui call that's failing, and the only variable there that isn't set explicitly (like $match_type and $ignore_case) or wrapped (like '-label' => "($section_name)" on line 153) is the $section_name in the arrayref passed to command on line 154. Could you add some diagnostics before and after to see if it's this call that's the problem? (I'm a little suspicious of that call anyway, since the author seems to think that a my $var; for $var (@array) {} declaration makes sense, whereas in fact the my $var has no effect on the for code—not even shadowing any external occurrence of $var. (Also, I don't see where the hash %sections is initialised.))