A local reference (i.e. #toc6.0) is a directive to the HTTP client (browser). It is the client's responsibility to act on this directive in relation to the requested document once the document is received. Therefore, this behavior is dependent upon the client. Not all clients handle local references the same way.
Some clients (correctly) do not send the local reference part of the PURL to the PURL resolver but then (incorrectly) drop the local reference upon receiving the redirect from the PURL resolver and therefore fail to act on the local reference directive when the actual document is received.
As a result, PURLs with local references, such as the one in the example above, resolve to (the beginning of) the document referenced by the PURL under some Web browsers. To determine how your browser behaves, try the example PURL above. If it takes you to the top of the PURL FAQ, then your browser is not handling local references correctly. If it takes you to section 6.0 of the PURL FAQ, then your browser is handling local references correctly. Either way, you should still end up with the PURL FAQ.
There is nothing in the OCLC PURL Resolver Software that prevents you from creating a PURL which contains a "#" character. However, correct HTTP clients will truncate such PURLs at that character, making the PURL unresolvable or making it resolve to some other resource if the truncated PURL exists. Either way, such PURLs will never resolve as intended. Therefore, we recommend that you do not create PURLs containing the "#" character.
We were able to make our Perl5 installation on Solaris 2.5 use flock properly by performing the final link of the perl executable using the BSD compatibility library by using /usr/ucb/cc as the linker. This will not work if you have not purchased Sun's BSD compatibility package.