Franky's Blog

书山有路勤为径,学海无涯苦作舟……

Perl-模式匹配后无法再次匹配

今天在开发调试脚本时,发现Perl字符串在进行一次模式匹配成功后,再用相同的模式匹配不上,查询资料了解到:

Perl在进行全局匹配时,会记住匹配的位置,且在下一次匹配时继续从上一次匹配的位置往下匹配,不会从开头进行匹配。

Read more →

Perl-如何释放数组或哈希占用内存

一般来说,在Perl中,内存的分配和释放并不是你可以或者应该多操心的事情!

截断一个数组并不回收其内存。你必须使用 undef(@whatever) 来把它的内存释放回你的进程的内存池里。你可能无法把它释放回你的系统的内存池,因为几乎没有那种操作系统支持这样做。在大多数操作系统上,分配给程序的内存永远不能返回给系统。

一旦Perl从操作系统中分配了内存,它就会在进程的整个生命周期中保留这些内存。在可能的情况下,Perl将重用它已经分配的内存,而不是向操作系统请求更多内存,但是你不会看到进程使用的内存减少。

最好方法是一开始就不要做任何浪费内存的事情。良好的编程实践可以在很大程度上实现这一目标。

Read more →