in reply to When can I skip parens?

You can use bare function names when the functions have been predefined. It's okay in this snippet:
sub action { print "Action!"; } action;
but not in this one:
action; # error under strict and -w sub action { print "Action!"; }
Using the parenthesis makes a bare word unambiguous -- as a function. (see page 677 of the new Camel)

Update: My explanation is a little ambiguous. When you use the DBI module, it's loaded, compiled, and the functions it exports are imported into your namespace at that location in your file. All of its functions are effectively predeclared. Make sense?