No, your problem is not different. warnings tells you exactly what I said in 776045 and what Corion implied in 776043. This error will prevent your code from executing properly. strict would have kept you from creating the bug in the first place.
First off, when you post code here, you should make sure that what you post is complete and executable to the extent possible - see How (Not) To Ask A Question. In this case, you omitted including (I assume) use Getopt::Long at the top of your file and have not included your usage_help() subroutine (which you misspell on line 13, caught by strictures). Ignoring that, running with warnings alone yields:
Name "main::Diagnostics" used only once: possible typo at fluff.pl lin
+e 7.
Name "main::All" used only once: possible typo at fluff.pl line 9.
Name "main::prefix" used only once: possible typo at fluff.pl line 20.
Name "main::result" used only once: possible typo at fluff.pl line 4.
Note the message about line 20, where you create your typeglob with an uninitialized variable. This is (part-of) your bug. This has already been pointed out multiple times. |