动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   Cgi/Perl → 阅读文章

 perl中的变量插值

作者来源: 
阅读 1266 人次 , 2006-3-29 4:02:00 


这样一段程序
$tt="123"
print 'this is $tt.';
结果将打印出this is $tt.
如果将第二句改成
print "this is $tt.";也就是把单引号改成双引号
结果就会打印出this is 123.

这是因为在使用双引号时,perl将检查引号内的每个字符,看看是否有特殊定义,
然后将它替换为其内容,这叫做变量插值。而对于单引号,则原封不动的保持引号
间的内容,不做任何替换。

注意单双引号之间的这一差别很重要。

数组也可以象标量变量一样,放在双引号之间,引用数组元素或数组的值。
引用整个数组时,将把所有的数组元素按下标顺序,以空白为分隔替换进来,比如
@array=(1,2,3);
print "this is @array.";
将打印出this is 1 2 3.
而print "this is $array[2]."将打印出this is 3.

有人写了这样一段程序

open (temp,"temp.txt");
@aa=<temp>;
close (temp);
.
.
.
open (temp,">temp.txt");
print temp "@aa";
close (temp);

结果发现用记事本打开temp.txt后,数组@aa没被改动的元素
均在最前面被加了一个空格。(注:实际上应该是只有第一个元素没被加空格)

如果注意到print temp "@aa";这一句的双引号,就不会感到奇怪了,
系统自动在每个元素间加了一个空格吗。
改成print temp @aa就一切正常了。

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:perl常规表达式
· 下一篇:perl的文字处理
· CGI教程(8)记录用户记录脚本之二
· CGI教学:CGI安全问题(二)
· CGI安全漏洞资料速查
· Perl教学 第十一篇 文件系统之四
· modperl Apache2::HelloWorld


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077