スレッド局所記憶
Perl のスレッドは言語の進化に伴って CPAN で大半のコードが利用可能になった後で追加された。
その結果、Perl では既存の非スレッドサポートのコードがスレッドのサポートにより影響を受けにくいようすべての変数をスレッドローカルとして扱うことになった。逆に Perl では、スレッドで共有される変数は attribute を用いて作成することができる。
マルチスレッドをサポートするプラットフォームや規格には、通例TLSを利用するためのAPIが用意されている。
Microsoft Windowsでは、Windows APIの関数 TlsAlloc() を用いると、未使用のTLSスロット番号を取得できる。これによりその番号は使用中となる。
次にTlsGetValue()およびTlsSetValue()関数を用いて、番号によって識別されるスレッドローカルな変数に対する読み書きができる。TlsSetValue() は現在のスレッド(関数を呼び出したスレッド)の変数にしか影響を与えない。
TlsFree() 関数を用いると、TLSスロット番号を解放することができる。番号は再び未使用となり、あらたな TlsAlloc() により再度使用することが可能となる。