From: Nicholas Clark Date: Wed, 9 Sep 2009 04:15:41 +0000 (+0100) Subject: Use readdir rather than glob, beacuse perlglob.exe is unavailable at this time. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0a3660e34f2e0cc69eaa07cad124563ed3e6fbdb;p=p5sagit%2Fp5-mst-13.2.git Use readdir rather than glob, beacuse perlglob.exe is unavailable at this time. --- diff --git a/win32/FindExt.pm b/win32/FindExt.pm index 7c99814..3f12a23 100644 --- a/win32/FindExt.pm +++ b/win32/FindExt.pm @@ -63,6 +63,16 @@ sub is_static return $ext{$_[0]} eq 'static' } +sub has_xs_or_c { + my $dir = shift; + opendir my $dh, $dir or die "opendir $dir: $!"; + while (defined (my $item = readdir $dh)) { + return 1 if $item =~ /\.xs$/; + return 1 if $item =~ /\.c$/; + } + return 0; +} + # Function to find available extensions, ignoring DynaLoader sub find_ext { @@ -78,8 +88,7 @@ sub find_ext $this_ext =~ s!-!/!g; $leaf =~ s/.*-//; - my @files = glob "$ext_dir$item/*.{xs,c}"; - if (@files) { + if (has_xs_or_c("$ext_dir$item")) { $ext{$this_ext} = $static{$this_ext} ? 'static' : 'dynamic'; } else { $ext{$this_ext} = 'nonxs';