- 论坛徽章:
- 0
|
如下的一段代码:
open(OLD_REC_FILE,"./test.1") || print ("不能读取./test.1文件!\n");
my (@old_rec)=<OLD_REC_FILE>;
close OLD_REC_FILE;
chomp(@old_rec);
open(NEW_REC_FILE,"./test.2") || print ("不能读取./test.2文件!\n");
my (@new_rec)=<NEW_REC_FILE>;
close NEW_REC_FILE;
chomp(@new_rec);
my (@cy)=s_check_sz(1,\@old_rec,\@new_rec);
foreach my $tmp (@cy)
{
print "========$tmp\n";
}
sub s_check_sz
{
my ($tmp,$tmp1,$tmp2)=@_;
my (@retur_num);
foreach my $tp1 (@$tmp1)
{
print "~~~~~~tp1==$tp1\n";
my ($sz_nu)=grep /$tp1/,@$tmp2;
print "-----------sz_nu==$sz_nu\n";
if (!$sz_nu )
{
push (@retur_num,$tp1);
}
}
return @retur_num;
}
test.1 test.2文件内容如下:
$cat N2000.1
1,0,分区=D:\,aaa
2524
$ cat N2000.2
1,0,分区=D:\,aaa
2524
运行后结果如下:
./test.pl
~~~~~~tp1==1,0,分区=D:\,aaa
-----------sz_nu==
~~~~~~tp1==2524
-----------sz_nu==2524
========1,0,分区=D:\,aaa
运行后的结果希望是
./test.pl
~~~~~~tp1==1,0,分区=D:\,aaa
-----------sz_nu==1,0,分区=D:\,aaa
~~~~~~tp1==2524
-----------sz_nu==2524
========
目前已经确认是D:\,的"\"符号引起来的,但是不从文件中读取,直接在数组中定义:
push @str1,"xxxx,中文=C:\,cccc";
push @str2,"xxxx,中文=C:\,cccc";
push @str1,"xxxxx";
push @str2,"xxxxx";
foreach my $ttt (@str1)
{
my ($tmp)=grep /$ttt/,@str2;
print "########$tmp\n";
}
显示的是
########xxxx,中文=C:,cccc
########xxxxx
在使用grep函数的时候,如果希望把转义字符看做普通字符一样来处理要怎么弄?
为什么从文件读入的,和在程序中赋值的出现不一样的情况? |
|