X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f NNTP-Posting-Date: Thu, 17 Apr 2008 03:43:28 -0500 From: "Robbie Hatley" Newsgroups: comp.lang.perl.misc,comp.os.msdos.djgpp References: Subject: Re: Perldoc error: "Could not create temp file" Date: Thu, 17 Apr 2008 01:43:44 -0700 Organization: Tustin Free Zone X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1914 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1914 Message-ID: Lines: 95 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-qqzwTMqczC6+L5n+esiFzanQyKGJg7qYrA9IBF5fiuGNCZoJA7qQyg/7wptQ2petJgYhAYMTwBFYHZV!//OYgZ9qXLZ7rhu4TgjR85T8A35LGlXQsF3mFg0MjHxo5xyNzXdU0IgrHKyCVJ0BPIMkcGOa+F3i X-Complaints-To: abuse AT giganews DOT com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.39 X-Original-Bytes: 4275 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "A. Sinan Unur" wrote: > "Robbie Hatley" wrote: > > > wd=C:\djgpp\bin > > %bash > > bash-2.04$ perldoc perl > > Error in tempfile() using c:/djgpp/tmp/XXXXXXXXXX: Could not > > create temp file c: /djgpp/tmp/zkQ06tqlcH: Invalid argument > > (EINVAL) at /dev/env/DJDIR/lib/perl5/Pod /Perldoc.pm line 1483 > > bash-2.04$ exit > > exit > > wd=C:\djgpp\bin > > %perl perldoc perl > > Error in tempfile() using C:/TEMP/XXXXXXXXXX: Could not create > > temp file C:/TEMP /0mfgo64w9W: Invalid argument (EINVAL) at > > /dev/env/DJDIR/lib/perl5/Pod/Perldoc.p m line 1483 > > wd=C:\djgpp\bin > > % > > You have a permissions problem. Either c:\djgpp\tmp does not exist or > you do not have permissions to write there. Same applies to > C:\TEMP No. First of all, in that situation, the error is different, and says "Permission Denied" (EACESS or EPERM) not "Invalid Argument (EINVAL)". Secondly, that was the first thing I thought of. I tried setting tmpdir first to "C:\djgpp\tmp", then to "C:\Temp". In each case I set the permissions (NTFS file system) to "Everyone: Full Control". But I still get "cannot create temp file: invalid argument". > I did use DJGPP for a long time. However, unless you really are doing > DOS development, I see very little point in trying to make do with > Perl in the DOS environment. What environment would you suggest? My Perl installation works fine for my purposes in the Win2K command console environment (cmd.exe), or a Bash sub-shell run from that. It's Perldoc.pm that's malfunctioning, not Perl or djgpp or cmd.exe. > > return File::Temp::tempfile(UNLINK => 1); ######### LINE 1483 > > ######### > > > > So, why would the parameters of File::Temp::tempfile be "invalid"? > > And what the heck is "UNLINK"? That doesn't look like a variable. > > No, the fat comma, =>, automatically quotes a bare string consisting > only of \w characters. Therefore, the statement above is identical to > return File::Temp::tempfile('UNLINK', 1); Ok. So under what conditions would ('UNLINK', 1) be "invalid"? > If I remember correctly, there was problem where DJGPP tools were not > seeing the proper TEMP directory .. ah, yes, here is something that > might be useful: > > http://groups.google.com/group/comp.os.msdos.djgpp/msg/ec8ac77e5e94a579 I get: myenv: TEMP=C:\TEMP TEMPDIR=C:\TEMP TMP=C:\TEMP TMPDIR=C:\TEMP set: TEMP=C:\TEMP tempdir=C:\TEMP TMP=C:\TEMP tmpdir=C:\TEMP Bash: TEMP='C:\TEMP' TEMPDIR='C:\TEMP' TMP='C:\TEMP' TMPDIR=c:/TEMP It's all "C:\Temp" from any point of view. So that's not the problem. The directory is correct, and the permissions are correct. But I still get "Invalid argument", and Perldoc still refuses to run, on every computer I try it on. -- Perplexed, Robbie Hatley perl -le 'print "\154o\156e\167o\154f\100w\145ll\56c\157m"' perl -le 'print "\150ttp\72//\167ww.\167ell.\143om/~\154onewolf/"'