local $^I = '.bac' 中$^是什么意思!



QUOTE:
原帖由 huanghaojie 于 2009-1-6 20:40 发表


搞明白了,但有一个地方有点不清楚, 就是print 这个光秃秃的print 打印$_到file.txt吗,

perldoc -f print
然后再看 perlrun 对 -i 的描述,perlvar 对 $^I 的描述。

QUOTE:
还有一个地方就是最后一句
foreach my $keys  ( sort {$seen{$b}  $seen{$a}} keys %seen) {
  print "$key ...

$keys 里面有换行(\n) 呗


QUOTE:
原帖由 MMMIX 于 2009-1-6 22:53 发表

perldoc -f print
然后再看 perlrun 对 -i 的描述,perlvar 对 $^I 的描述。

$keys 里面有换行(\n) 呗

你说有空行,那我这样
print chomp($keys), '=', $seen{$keys}, "\n";   加了一个chomp,
打印出来就不对了


QUOTE:
原帖由 huanghaojie 于 2009-1-6 23:08 发表


你说有空行,那我这样
print chomp($keys), '=', $seen{$keys}, "\n";   加了一个chomp,
打印出来就不对了

print chomp($keys), '=', $seen{$keys}, "\n";
会打印chomp的返回值加上'=', ....

chomp($keys) 后$keys中没有\n,键值变了,再取$seen{$keys}得不到原来的值。


QUOTE:
原帖由 ynchnluiti 于 2009-1-7 00:52 发表

print chomp($keys), '=', $seen{$keys}, "\n";
会打印chomp的返回值加上'=', ....

chomp($keys) 后$keys中没有\n,键值变了,再取$seen{$keys}得不到原来的值。

oh, 这样呀,那如何去掉$keys 后的\n呢


QUOTE:
原帖由 huanghaojie 于 2009-1-7 08:49 发表

oh, 这样呀,那如何去掉$keys 后的\n呢

这个问题真的难到你需要问别人的地步么?


QUOTE:
原帖由 MMMIX 于 2009-1-7 09:19 发表

这个问题真的难到你需要问别人的地步么?

是的, 至少到目前还没搞定。


QUOTE:
原帖由 huanghaojie 于 2009-1-7 10:31 发表


是的, 至少到目前还没搞定。

foreach my $keys  ( sort {$seen{$b} <=> $seen{$a}} keys %seen) {
  chomp(my $t = $keys);
  print "$t = $seen{$keys}";
}
这个真的很难么?


QUOTE:
原帖由 MMMIX 于 2009-1-7 10:37 发表

foreach my $keys  ( sort {$seen{$b}  $seen{$a}} keys %seen) {
  chomp(my $t = $keys);
  print "$t = $seen{$keys}";
}
这个真的很难么?

感谢了,我找到了另一种办法


11   while(<>){
12      chomp($_);
13      $seen{$_}++;
14      next if $seen{$_} > 1;
15      print;
16   }

我加了一个12行就好了。在读元素的时候就去掉换行就行。


QUOTE:
原帖由 huanghaojie 于 2009-1-7 10:57 发表


感谢了,我找到了另一种办法


11   while(){
12      chomp($_);
13      $seen{$_}++;
14      next if $seen{$_} > 1;
15      print;
16   }

我加了一个12行就好了。在读元素的时候就 ...

也行。($_)可以省略。


QUOTE:
原帖由 ynchnluiti 于 2009-1-7 10:59 发表

也行。($_)可以省略。

oh, 多谢,$_可以省略的,