http://qs321.pair.com?node_id=11107610


in reply to weird bug with IO::Prompter, prompt spells out the word 'prompt'

This seems to be a bug in the weird, custom import subroutine of IO::Prompter because it works when used in the traditional fashion:

perl -e'use IO::Prompter; prompt -menu => [6..9]'

The custom import subroutine takes the second argument given to it as fake input:

# Export the prompt() sub... sub import { my (undef, $config_data, @other_args) = @_; # ... if( 0 ) { # other options that do not apply # Handler faked input specifications... elsif (defined $config_data) { $fake_input = $config_data; } }

I don't understand why @_ is not as expected for it, but the code path triggered is the one for fake input data as in:

perl -e'use IO::Prompter 'fake'; prompt( -menu => [6..9] )'

... which provides the fake input fake.

Right after posting I understand. The custom export subroutine does not take the name of the subroutine to export! Just leaving out the prompt makes things work:

perl -MIO::Prompter -e'prompt -menu => [6..9]'