At 07:58 AM 2003-01-25 +0100, Philip Newton wrote:
On Fri, 24 Jan 2003 18:19:14 -0900, [EMAIL PROTECTED] (Sean M. Burke)
wrote:

> Someone mentioned to me that people on p5p were talking about perldoc under
> MSWin going kookoo when using more as the pager. I've just tried
> reproducing the problem and can't.

Did you use Win9x/ME? Or NT/2K/XP? I can imagine the problem is only on
the former series. (I saw it on a Win98SE machine with ActivePerl's
5.8.0.)
I've tried reproducing the problem with 5.8.0 and Pod::Perldoc, under both 98 and under XP, and there's no problem.

> Pod::Perldoc has a great deal of MSWin-specific hacks in it already (like a
> bunch of temp-file stuff -- File::Temp doesn't get used at all under MSWin
> -- see the code around "sub new_tempfile")
since I think the problem is with File::Temp creating files in binmode.
So if that's not used, the problem might go away.
Yup. I can't even really remember what was the last straw in my deciding to not use File::Temp under MSWin. I think it might have been that unlinking an open file under MSWin is a bad idea, and that means that you really cannot go unlinking a file when the pager command returns, since the pager command might just be a command to /start/ up a real pager on the output file.

So once I realized I didn't want all the unlinking tricks that File::Temp does, I decided I should just write my own routine for when we're running under MSWin (otherwise we go ahead and use File::Temp). Like some sort of horrid coelanth, my MSWin_perldoc_tempfile is specially adapted to its horrible environment: For example, it doesn't just use $$ in the tempfile name, since MSWin recycles $$ numbers almost immediately (!). So it actually uses a combination of time(), $$, and the lower 8 bits of Win32::GetTickCount(), all in a do {...} while -e $tempfilespec loop.

Anyway, it's good to hear that my abandoning File::Time for MSWin had some
fringe benefits.

--
Sean M. Burke http://search.cpan.org/~sburke/



Reply via email to