$^I 这个为什么不起作用呢.

$^I 这个为什么不起作用呢.

#$^I="";
#$^I=".bak";
sub replace(){
        my $para = "$dir/$_[0]";
        open MYFILE,"$para" or die "cannot open file $para !\n";
        while(<MYFILE>{
                s/UI_EM/$newpar/g;
                print;
        }
}

只在屏幕上打印出$_的内容.怎么让它写进去呢?
$^I="" 不行.
$^I = ".bak" 也没见多出来的bak文件啊.哪里有问题呢.
没人知道?
因为$^I作用的是@ARGV,使用如下方式即可

[Copy to clipboard] [ - ]
CODE:
@ARGV = ($para);
while(<>)

去国外论坛上问了.人家说只作用在magic ARGV file handle上.
大概就是楼上所说的这个东西了.
我试了.ok.
就是windows下非要生成bak文件.如果把$^I='',会报错.说要备份的文件.非要$^I=".bak".才可以.
$^I 就是能magically给个备份,否则用他作甚?