use constant { zed => 0, one => 1, repos => (qw(oss non-oss debug)), two => 2, }; #output: Constant name 'non-oss' has invalid characters at -e line 3. BEGIN failed--compilation aborted at -e line 7. #### tperl use constant { zed=>0, one=>1, two=>2, }; use constant repos=>(qw(oss non-oss debug)); ' #### > tperl # (alias tperl='perl -I/home/law/bin/lib -we'\''use strict; use P;') our $k; BEGIN{our $k={ zed => 0, one => 1, repos => [qw(oss non-oss debug)], two => 2, };} use constant $k; use constant repos2=>(qw(oss non-oss));' #### tperl our $k; BEGIN{our $k={ zed => 0, one => 1, repos => [qw(oss non-oss debug)], two => 2, };} P "k=%s", $k; use constant $k; use constant repos2=>(qw(oss non-oss debug)); P "repos=%s", [repos]; P "repos2=%s", [repos2];' #output: k={one=>1, two=>2, zed=>0, repos=>["oss", "non-oss", "debug"]} repos=[["oss", "non-oss", "debug"]] repos2=["oss", "non-oss"] #### repos => @{[qw(oss non-oss debug)]}, #### Constant name 'non-oss' has invalid characters at -e line 10. BEGIN failed--compilation aborted at -e line 10. #### my ($x,$y) = (qw(1 2 3), qw(4 5 6)); #### my ($x,$y) = ( (1,2,3), (4,5,6));