in reply to Re^6: XML tags using perl CGI
in thread XML tags using perl CGI

What does the qw do

qw// is the "quote words" operator. It's a quick way to build a list from whitespace separated string. It's documented in the section on Quote and Quote-like Operators in perlop. Like all of the quote-like operators you can use any delimiter that makes sense for you, so qw/:standard :html2/ is exactly the same as qw(:standard :html2).

what is the difference between a : parameter, like :standard, and a - parameter, like -no_xhtml?

There are no fixed rules for how these parameters work - only conventions. One convention is that a module should use Exporter to control its exports (the module's exports are your programs imports). Exporter defines the ':foo' syntax for groups of symbols that are exported together. CGI.pm doesn't use Exporter to manage its exports, but it does stick to the ':foo' syntax to designate export groups. The '-foo' syntax for other parameters is (as far as I know) something that was invented by the author of CGI.pm, but these parameters are "options" that control how CGI.pm works for the '-foo' syntax was almost certainly chosen to mirror the common syntax of options to command line options. It also mirrors the syntax used to pass parameters to many CGI functions (e.g. start_html(-title => 'foo')).