正在运行此脚本的 Perl 的进程号。虽然可以设置此变量,但通常不建议这样做,尽管它对于某些测试目的来说非常有价值。它将在 fork()
调用中自动重置。
对于 Linux 和 Debian GNU/kFreeBSD 用户,请注意:在 Perl v5.16.0 之前,perl 会在 Linux 系统上使用 LinuxThreads 模拟 POSIX 语义,LinuxThreads 是 POSIX Threads 的部分实现,现已由 Native POSIX Thread Library (NPTL) 取代。
LinuxThreads 现在在 Linux 上已过时,并且像这样缓存 getpid()
会让嵌入 perl 变得不必要地复杂(因为你必须手动更新 $$ 的值),所以现在 $$
和 getppid()
将始终返回与底层 C 库相同的值。
Debian GNU/kFreeBSD 系统在 6.0 版本及之前也使用了 LinuxThreads,但之后切换到了类似 POSIX 的 FreeBSD 线程语义。
要查看你的系统是否受到此差异的影响,请检查 getconf GNU_LIBPTHREAD_VERSION | grep -q NPTL
是否返回 false 值。NTPL 线程保留了 POSIX 语义。
助记符:与 shell 相同。