以下脚本的输出将是当前日期,如" 12月26日星期一"
#!/usr/local/bin/perl
@months = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
@days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
print "$mday $months[$mon] $days[$wday]\n";
答案 0 :(得分:7)
qw(a b c)
是('a', 'b', 'c')
的快捷方式。它会返回列表(单词,w
代表的单词)。
q()
只是编写单引号的另一种方式,即q(a b c)
与'a b c'
相同。它返回一个字符串而不插值。
qq()
是一种编写双引号的方法,即qq(a b c)
与"a b c"
相同。它返回带有插值的一个字符串。
有关详细信息,请参阅http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators。
当引用的字符串包含(大量)单引号和/或双引号并且您希望避免转义它们时,有时会使用q()
和qq()
语法:
my $s1 = "This \"contains\" quotes - \" - and \"is\" no fun to \"type\"";
VS
my $s2 = qq(This also "contains" quotes - " - but "is" easier to "type");
答案 1 :(得分:2)
qw(...)
在功能上等同于
split(' ', q(...))
所以它显然不等于
q(...)
或
qq(...)