关于mod_perl

关于mod_perl

#!/usr/bin/perl
use vars qw($flag);
print "Content-type: text/html\n\n";
print $flag++;


在浏览器中不断刷新访问上面的mod_perl代码,结果是数字越来越大
怎么办呢?


QUOTE:
原帖由 chenyan1206 于 2008-1-22 15:44 发表
#!/usr/bin/perl
use vars qw($flag);
print "Content-type: text/html\n\n";
print $flag++;


在浏览器中不断刷新访问上面的mod_perl代码,结果是数字越来越大
怎么办呢?

避免使用全局变量,改成my试试。
因为modperl程序是驻留在内存的,这个值为package变量,其值会始终keep在进程里。
详见"modperl编程指南"的开头节描述。
你这个例子是全局变量,一直会存在内存里面。建议少用。
可以在sub里面用my定义变量。
噢,谢谢.
??


QUOTE:
原帖由 chenyan1206 于 2008-1-22 15:44 发表
#!/usr/bin/perl
use vars qw($flag);
print "Content-type: text/html\n\n";
print $flag++;


在浏览器中不断刷新访问上面的mod_perl代码,结果是数字越来越大
怎么办呢?

en,这主要是作用域的问题,my变量最大也就文件作用域,所以用my申明的变量,脚本执行完后,就go out scope了.
package变量是全局的,只要modperl进程不退出,就始终keep在内存里.所以会一直递增.
仙子天天在哪里逛啊?这是我登陆CU以来第一次见你在PERL版发帖,要顶的说!


QUOTE:
原帖由 mouse.rice 于 2008-1-23 23:57 发表
仙子天天在哪里逛啊?这是我登陆CU以来第一次见你在PERL版发帖,要顶的说!

偶都很少来这里逛hoho~
仙子竟然回来了。。。。
嗯,谢谢