proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« HP ProLiant DL180 安装 RHEL AS 时的 cciss 驱动问题 | Main | perl 用Spreadsheet::WriteExcel写了个处理/读写excel的小程序 »

December 11, 2007

perl 变量转义的问题

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2007/12/11/001294.html

就是变量的内容怎么当成本身 别转义 (Kcore遇到的)
$pattern="a.*.b";
就是别把.*去匹配一堆 就是匹配 '.*' 这样的字符 也就是 \.\*

用 \Q \E 解决这件事 具体参见 perlop

$str ="ca.*.bc";
if($str=~/c\Q${pattern}\Ec/) {
print "ok\n";
}


顺带如果 $pattern 是stdin标准输入的
$pattern=<>;
要 chomp 一下
chomp($pattern);

Kcore思想的示意代码:
#!/usr/bin/perl
#

$pattern=<>;
chomp($pattern);
print $pattern."\n";

open(FILE,'<test.txt') || die "cant open test.txt";
while ($line=<FILE>) {
if ($line=~/\Q${pattern}\E/) {
print $line;
}
}


相关文章:
shell 脚本的注意事项: eval 转义 引号
http://windtear.net/archives/2007/07/24/001258.html

shell 折腾之 ${!varname} 实现级联调用
http://windtear.net/archives/2006/11/26/001146.html

eval 把参数组合成命令再执行
http://windtear.net/archives/2006/10/18/001115.html

本blog WWW

Posted by windtear at December 11, 2007 1:39 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.