in reply to Re: Win32 CSIDL_LOCAL_APPDATA
in thread Win32 CSIDL_LOCAL_APPDATA

holli wrote:

The good new first: The program runs fine on my system (XP, AS Perl 5.8.6)

I'm using Win2000 Pro, Active Perl 5.8.7. I don't think that should be the source of the problem.

The return value of GetFolderPath is a path. The CSIDL_LOCAL_APPDATA is a numeric constant that tells the function which path to return.

Okay, but that doesn't solve the mystery as to why it's not returning the same path that the command-line invocation did.

Note that code in the style of if ($something) {use Some::Module;} does not DWYM. use is a compile time statement. There are some nodes about conditionally loading modules at runtime here.

Correct, but I got the same results using require:

use strict; use warnings; use Exporter qw(import); my $realhome; if ($^O eq 'MSWin32') { require Win32; import ('CSIDL_LOCAL_APPDATA'); $realhome = Win32::GetFolderPath('CSIDL_LOCAL_APPDATA'); }

jimk

Replies are listed 'Best First'.
Re^3: Win32 CSIDL_LOCAL_APPDATA
by ww (Archbishop) on Aug 23, 2005 at 14:50 UTC
    I'm sticking some *n*x bias in this question, but are you sure your CLI execution is from the same point on the path as your scripted execution?
      I'm executing both from the same directory, so I guess the answer is yes.

      jimk