LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1443|回复: 6

$^I变量(初级问题)

[复制链接]
发表于 2008-4-7 18:05:00 | 显示全部楼层 |阅读模式
perl语言入门第四版中的一个问题,对$^I变量有点不太明白。
cat test2.pl
#!/usr/bin/perl -w
use strict;
open DATA,"data";               
$^I=".bak";
while(<DATA>){
s/^(.*)/#$1/s;
print;
}

cat data
Promram name: granite
Author: Randal L.Schwartzates
Company: RockSoft
Department: R&D

按照书中对$^I变量的描述,应该可以生成data.bak。可是实际并没有生成,文件内容也没有改变。 新手,请哪位帮着解释一下,多谢。
 楼主| 发表于 2008-4-8 00:23:59 | 显示全部楼层
cat test2.pl
#!/usr/bin/perl -w
use strict;
$^I=".bak";
while(<DATA>){
    s/^(.*)/#$1/s;
    print;
}
./test2.pl data
这样执行就可以了,看来对$^I还是理解的不太好.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-8 00:25:50 | 显示全部楼层
刚才多打了点东西, 那位老大能把$^I 解释一下啊, 不胜感激!
Post by kane0615;1835954
cat test2.pl
#!/usr/bin/perl -w
use strict;
$^I=".bak";
while(<>){
    s/^(.*)/#$1/s;
    print;
}
./test2.pl data
这样执行就可以了,看来对$^I还是理解的不太好.
回复 支持 反对

使用道具 举报

发表于 2008-4-8 21:10:23 | 显示全部楼层
$ perldoc perlvar

$INPLACE_EDIT
       $^I     The current value of the inplace-edit extension.  Use "undef" to disable inplace editing.  (Mnemonic: value of -i switch.)

就是备份文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-9 15:49:26 | 显示全部楼层
非常感谢。这个变量只对命令行输入的文件有效是吧?
回复 支持 反对

使用道具 举报

发表于 2008-4-9 21:26:56 | 显示全部楼层
PHP 程序设计 第三版
回复 支持 反对

使用道具 举报

发表于 2008-4-13 12:21:36 | 显示全部楼层

仅对@ARGV中的有效
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表