Regarding Subroutine main::Dump redefined at /System/Library/Perl/5.18/CGI.pm line 308
YAML is bringing &Dump into main:: and then when you use CGI ":standard"; it also exports its own &Dump (with the :standard set you're calling). In your particular code, you're using neither so remove either or both. Or use them with empty import lists, e.g., use CGI ();.
moo@cow[625]~>perl -mYAML -MCGI=:standard -we 1
# ^^^ No problem, -m means "use YAML ()"
moo@cow[626]~>perl -MYAML -MCGI=:standard -we 1
Subroutine main::Dump redefined at /home/moo/perl5/lib/perl5/CGI.pm li
+ne 296.