- 论坛徽章:
- 0
|
不知道哪里出错了, 把下面可以正常运行的代码段,- my $tempfile = 'test.txt';
- unless(open (IN, '>>', $tempfile)) {
- print "\nError: unable to open file $tempfile: $! \n";
- exit -1;
- }
- my %test = map { (split, $_)[1]=> undef } <IN>;
- for (@lease){
- /(\S+)\s+(\S+)\s+(\S+)$/;
- next if exists $test{$2};
- print "$1\t$2\t$3\n";
- }
- close IN;
复制代码 放在子函数中, 这时语句next if exists $test{$2};就不起作用了- my $tempfile = 'test.txt';
- &getData($tempfile);
- sub getData {
- my $temp = $_[0];
- unless(open (IN, '>>', $temp)) {
- print "\nError: unable to open file $temp: $! \n";
- exit -1;
- }
- my %test= map { (split, $_)[1]=> undef } <IN>;
- for (@lease){
- /(\S+)\s+(\S+)\s+(\S+)$/;
- next if exists $test{$2};
- print "$1\t$2\t$3\n";
- }
- close IN;
- }
复制代码 里面的列表@lease是和test.txt一样的数据格式, 脚本是想找出@lease里有, 文件test.txt中没有项.
#cat test.txt
2013/08/30 192.168.1.35 ok
2013/08/31 192.168.2.48 not ok
.....
..... |
|