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

So, what is the difference bewteen :
use CGI qw/:standard :html2/;
and
use CGI qw(:standard :html2);

What does the qw do, and what is the difference between a : parameter, like :standard, and a - parameter, like -no_xhtml?

Anyway, sorry for my ignorance, and the help/tutorial is greatly appreciated.

BTW, for using this website, is it possible to see all of the items for a single node under one tree? What does the + and - do when reading through a node?

Replies are listed 'Best First'.
Re^7: XML tags using perl CGI
by davorg (Chancellor) on Feb 06, 2007 at 14:04 UTC
    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')).