perl程序当中一个地方不明白?求解[简单]

perl程序当中一个地方不明白?求解[简单]

Here's an example that prints the characters used in the string "an apple a day", sorted in ascending
ASCII order:
%seen = ();
$string = "an apple a day";
foreach $byte (split //, $string) {
    $seen{$byte}++;
}
print "unique chars are: ", sort(keys %seen), "\n";
unique chars are: adelnpy

虽然很简单,但是小弟对这个不了解
   $seen{$byte}++;
  这里不知道是不是可以等价     
$seen{$byte}= $seen{$byte}+1;
这里什么意思呢?第一次调用
$seen{a}=0+1
$seen{n}=0+1
$seen{a}=1+1
最后不就是哈西seen当中 a建的值是3 是这样理解吗?
但是后来用key排序,然后输出?那么要   $seen{$byte}++; 后面的++有什么意义?

我去掉++后,运行后结果是这样:
zhang@zhang:~/programming/perl$ perl c-string.pl
Useless use of hash element in void context at c-string.pl line 7.
unique chars are:

为什么就不显示呢?。。诡异阿。。
说白了,还是懒。
那能不能指点一下 勤劳的方法?我也就自己勤劳去了,不烦扰大家了。
版主的意思是让你看书去,你就看书去吧
丢脸了。。回去看书


QUOTE:
   $seen{$byte}++;
  这里不知道是不是可以等价     
$seen{$byte}= $seen{$byte}+1;

自己动手试试不就知道了?
如果不知道 ++ 是什么意思,看看书不就知道了?

QUOTE:
那么要后面的++有什么意义?

当你知道了 ++ 的含义之后,自己分析一下那一段程序,不就知道是什么意思了?
这段程序又没有用到多么晦涩的技巧,
把基本的东西搞明白,就全都明白了。



说白了,还是懒。
$seen{$byte}++
实际上是计算了$byte在$string里面出现的次数

不清楚的话可以把%seen里的东西打出来看看



QUOTE:
原帖由 flw 于 2007-10-4 18:13 发表
说白了,还是懒。

我们都是小白,还望前辈多多提携。


QUOTE:
原帖由 YTHTdeWo 于 2007-10-7 21:47 发表
$seen{$byte}++
实际上是计算了$byte在$string里面出现的次数

不清楚的话可以把%seen里的东西打出来看看

不过这段代码的含义是不是有问题
打印出来的显然不是unique chars...


QUOTE:
原帖由 bood 于 2007-10-8 09:57 发表


不过这段代码的含义是不是有问题
打印出来的显然不是unique chars...

没有问题吧,一切都正常啊