PERL 语言中的q,qw,qr,qx,qq......符号用法总结

转载 2016年06月01日 18:27:57
在perl语言中,有两个特殊而常用的符号qq qw,分别解释如下:
qq{foobar}的意思为意思为双引号字符串,可内插变量
相当于 "foobar"
qw{foo bar}的意思为用空格分解字符串,得到列表,相当于如下语句
split(' ','foo bar') 得到的结果是'foo','bar'

字符串比较等于用 eq

q运算符对'号转义的方式
$someword = 'i \'ve some money';
可以等价于:
$someword = q~i 've some money~;

qq运算符对"号转义的方式
$someword = "i say \"ok!\".";
可以等价于:
$someword = qq~i say "ok!".~;

qw代表用空格来分隔元素,得到列表
@list = ("perl","Regular","network","web");
可以等价于:
@list = qw(perl Regular network web);

qr代表创建正则
$myword = "catcat";
$replaceword = qr(catcat);
$finalword = "ok" if ($myword =~ $replaceword);

引号执行运算符(quoted execution operator),qx//
qx/uname -p -r/

q 和 qq 运算符的特点:
※ q 和 qq 必须是一个标识符,而不是标识符的部分。例如:
q (abc)      用 () 作为分界符
q(abc)       用 () 作为分界符
q xabcx      用 x 作为分界符
都是合法的,而
qxabcx 就会被当作是一个标识符来处理,有谁会想到 qxabcx 居然是一个 q 运算式呢?

※ q 和 qq 后面的空格并不会影响语法,但是任何非空字符(不是空格、不是 TAB 字符、
   不是换行符)则会被当作界限符来使用。

※ 如果 q 和 qq 使用一些特殊的符号的时候,则必须配对。比如:< 只能和 >; 在一起
   用来当作界限符,而不能只用两个 < 作为界限符。而 | 则只能和它自己作为一对界
   限符。这些特殊的符号有:()、{}、[]、<>;

$myword = "catcat";
$replaceword = qr(catcat);
$finalword = "ok" if ($myword =~ $replaceword);

@list = ("perl","Regular","network","web");
可以等价于:
@list = qw(perl Regular network web);

$someword = 'i \'v some money';
可以等价于:
$someword = q~i 'v some money~;

q// is generally the same thing as using single quotes - meaning it doesn't interpolate values inside the delimiters.
qq// is the same as double quoting a string. It interpolates.
qw// return a list of white space delimited words. @q = qw/this is a test/ is functionally the same as @q = ('this', 'is', 'a', 'test')
qx// is the same thing as using the backtick operators.
I've never used qr//, but it's got something to do with compiling regex's for later use.

相关文章推荐

Perl 语言学习笔记 (二)

这一部分主要是数组和列表部分。首先建议一种使用utf8编码的简便写法(因为Perl只能处理ASCII编码以及utf8编码,所以了解utf-8的详细用法是必须的):  use utf8; binmod...

Perl 语言的重要价值体现

尽管媒体们如此关注Java和ActiveX,但真正“让英特网活起来”的却应该是Perl,一种专业技术分析家们视而不见,但是却出现在所有网络管理员、系统管理员或程序员脑中的语言。他们每天的工作包括建立常...

Perl 语言笔记(1)-标量类型

标量类型 字符串的两种形式 单引号‘: 除了\'代表‘, \\代表\外引号内的所有内容代表他自己。双引号“: 可以嵌入控制字符,嵌入十进制,八进制,16进制的数字,嵌入转义符号, 字符串...
  • freesum
  • freesum
  • 2012年03月10日 16:20
  • 583

Perl 语言学习笔记 (一)

Perl是一种脚本语言。对于其详细的介绍,请自行查看维基百科http://zh.wikipedia.org/wiki/Perl或者百度百科http://baike.baidu.com/view/466...

Perl 语言笔记(4) -- 输入输出

输入输出 标准行输入符 用于返回从标准输入端读入的一行内容(带换行),一般用 chomp($line =),也可以循环读while(chomp($line =)),在列表上下文中返回标准 输入...
  • freesum
  • freesum
  • 2012年03月19日 21:31
  • 564

Perl 语言笔记

print"hello world\n"; #perl 的用print"";语句的结束以分号;注释以井号#;在输出内容的最后加\n则表示换行,注意其位置在输出的引号里面...

PERL 语言入门与提高

  • 2015年12月13日 01:55
  • 7.11MB
  • 下载

Perl 语言教程

  • 2013年08月05日 12:05
  • 542KB
  • 下载

perl关于qw以空格为分隔符的问题以及若干替代方案+学会变通+split函数的使用

我们在创建数组的时候,可以使用到qw,这是一个非常方便的简写,省去了我们书写大量引号的麻烦。 但是有这样一个问题。如果们要创建有20个人名组成的数组,并且每个人的名字是这种形式的"Join smit...

Perl 语言入门

  • 2015年10月09日 20:03
  • 1.1MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PERL 语言中的q,qw,qr,qx,qq......符号用法总结
举报原因:
原因补充:

(最多只允许输入30个字)