$| works per process. So if you use one script that sources other scripts (e.g. using do $filename, require, eval $string), once is sufficient. If you start scripts from other scripts using system, exec, qx a.k.a. ``, pipe open (| somewhere in the open arguments), each script runs in its own process and thus has its own $|.
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
| [reply] [d/l] [select] |