I knew I forgot to put something in the email.  I did do the "C:\\", but
the output comes in the form of...

C:\/WINDOWS/system32/loginw32.exe

I was hoping to get rid of the "\/" and just have a "/".

Thanks.

Len.



                                                                                       
                                                             
                      "$Bill Luebkert" <[EMAIL PROTECTED]>                                   
                                                             
                      Sent by:                                     To:      
[EMAIL PROTECTED]                                             
                      [EMAIL PROTECTED]         cc:      
[EMAIL PROTECTED]                               
                      veState.com                                  Subject: Re: 
File::Find question                                                 
                                                                                       
                                                             
                                                                                       
                                                             
                      09/18/2002 02:56 PM                                              
                                                             
                                                                                       
                                                             
                                                                                       
                                                             
                                                                                       
                                                             
                                                                                       
                                                             




[EMAIL PROTECTED] wrote:
> Does anyone know why the following code does not work?
>
> ---------
>
> use File::Find;
>
> find (\&wanted, 'C:/');
>
> sub wanted  {
>         if ( -d && /dllcache/i || /System Volume Information/i )  {
>                 $File::Find::prune = 1;
>         }  else  {
>                 next if ( -d || ! /exe$/ && ! /com$/);
>                 print "$File::Find::name\n";
>         }
> }
>
> -------
>
> When this runs, it just immediately exits, but if I replace the search
> directory to something like "C://" or "C:/.", it will work, but I will
get
> output in the form of ...
>
> C://WINDOWS/system32/loginw32.exe
>
> I am looking to get output in the form of...
>
> C:/Windows/System32/loginw32.exe
>
> Also, does anyone know of a faster way of inventorying all files on a
> NT/2K/XP based system?  I'm currently using the File module, but wasnt
sure
> if there was a faster way to do this in Perl.

Watch your operator precedences and next vs return - change c:/ to c:\\:

use strict;
use File::Find;

find (\&wanted, 'C:\\');             # not sure why / isn't working - uses
CWD on drive

sub wanted  {

if (-d && (/dllcache/i || /System Volume Information/i))  {
             $File::Find::prune = 1;
} else {
             return if -d || (! /exe$/i && ! /com$/i);
             print "$File::Find::name\n";
}

}

__END__


--
   ,-/-  __      _  _         $Bill Luebkert   ICQ=162126130
  (_/   /  )    // //       DBE Collectibles   Mailto:[EMAIL PROTECTED]
   / ) /--<  o // //      http://dbecoll.tripod.com/ (Free site for Perl)
-/-' /___/_<_</_</_     Castle of Medieval Myth & Magic
http://www.todbe.com/

_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs






_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to