2009/1/14 Shlomi Fish <shlo...@iglu.org.il>:
> Hi all,
>
> I recently uploaded File-Find-Object-0.1.6 to CPAN and got this errror report
> on MSWin32:
>
> http://www.nntp.perl.org/group/perl.cpan.testers/2009/01/msg3039451.html
>
> Reading from there, we see the following:
>
> {{{
> Your vendor has not defined Fcntl macro S_IFLNK, used at C:/Perl/lib/Fcntl.pm
> line 214.
> # Looks like you planned 3 tests but ran 2.
> # Looks like your test exited with 255 just after 2.
>  Dubious, test returned 255 (wstat 65280, 0xff00)
>  Failed 1/3 subtests
> }}}
>
> This appears multiple times for each test script. The reason it happens is
> that instead of doing -l / -d / -f / etc. I just do one stat() and then use
> S_IFLNK() from Fcntl on the mode field of stat (the one with index 2). (To
> save on system calls).

What's wrong with using _ instead ?

> Obviously, it doesn't work on Windows at that report. My questions are:
>
> 1. Can I ever expect it to work on Windows?

Dunno. Does Windows 7 implement symbolic links ? I think that's
unlikely.

> 2. Is it fixed on perl-5.8.9 or perl-5.10.0 there?

What do you mean, fixed ? If the OS doesn't support S_IFLNK, you can't
use it. That's not a bug.

> 3. The error report seems to come from ActivePerl (or otherwise a Perl that
> was built using MS DevStudio). Does S_IFLNK work better on Mingw32-based
> Perls?

I bet it doesn't, since the libc won't support it anyway. Maybe on
cygwin there's some kind of compatibility layer ?

> 4. Why doesn't Perl do the right thing with this macro, like it does using -l.

Because you're using a low level API, comparable to using POSIX.pm for
example : it tries to be close to your libc, to enable you to do
difficult things.

Reply via email to