Perl 中的特殊变量 $&, $`,$' 用在模式匹配中
上一篇 /
下一篇 2008-12-28 13:46:11
/ 个人分类:perl
- 文件版本: V1.0
- 开发商: 本站原创
- 文件来源: 本地
- 界面语言: 简体中文
- 授权方式: 免费
- 运行平台: Win9X/Win2000/WinXP
$& 用来存放匹配中的值51Testing软件测试网k
T O!E"j&zR;f
$` 用来存放匹配中之前所有字符51Testing软件测试网V8g?3w*SE7K:vR9\
$' 用来存放匹配中之后所有字符51Testing软件测试网]"`JR3a%]]Z
如:
%qRIU*Br fn0#!/usr/bin/perl -w51Testing软件测试网:w(J
OT8Q5Gp}6E
if("Hello good there,neigbor hello" =~ /S(w+),/)
B Z1N!d6y!K/rf1j0{
kUQ [6GLA0 print "That actually matched '$&'.";51Testing软件测试网,R!wi$}"l(b(M(j
print $`."";51Testing软件测试网W0{,uP@O[
print $'." ";51Testing软件测试网q3zt$z/at[;d
}
|T/GBD&k
u7@0
4R'Q Wk6}P?H0执行的结果为:51Testing软件测试网#g*~ef/\;f0| Y
That actually matched 'there,'.
)VJ?[`{+?|0Hello good 51Testing软件测试网o\
fPe:Db
neigbor hello51Testing软件测试网6^:lT)Y8B![f
---------------------------------------------
7A;Y0xuVBL8^h0另外常用的变量@_51Testing软件测试网W(}.Xl\rK5Vw t
@_是子程序的一个私有变量◆;如果有一个全局变量@_,它将在此子程序调用前存储起来,当子程序调用完成后,其早期的值会被重新赋还给@_◆。这意味着当将参数传递给子程序时不用担心它会影响此程序中其它子程序的@_这个变量的值。嵌套的子程序调用时,@_的值和上述类似。甚至此子程序递归调用时,每一次调用将得到新的@_,因此子程序调用时将得到其自身的参数列表。
&k F?{2FYo0◆除非调用的子程序前有&而后面没有括号(或者没有参数),此时@_从此调用者的上下文(context)得到。这通常不是个好主意,但有时很有用。
相关阅读:
- Getopt::Std 模块 (lgwmlx, 2008-12-08)
- 看一个模块有没有安装 (lgwmlx, 2008-12-09)
- Perl Language Reference Guide (Chenny, 2008-12-13)
- Perl特殊变量 (Chenny, 2008-12-13)
- Perl 程序调试 (Chenny, 2008-12-13)
- $^O的意思 (lgwmlx, 2008-12-14)
- Perl练习题:遍历所有目录 (qiguojie, 2008-12-16)
- exit在perl中的意思 (lgwmlx, 2008-12-21)
- 使用perl编写安全检测工具 (lgwmlx, 2008-12-21)
- PERL进程、管道、信号 (lgwmlx, 2008-12-21)
收藏
举报
TAG:
perl