Zentara wrote:
> 
> Hi,

Hello,

> I'm trying to find all .so.xxx files on my system.
> Eventually I want to do things with them, but for
> now I just want to identify them.
> 
> I pretty much have it, except I'm lacking enough
> regex knowledge to separate out the  so  from the .so.
> files.
> 
> I'm matching
> 
> cursor
> moc_sound
> libqt.so.2
> libqt-mt.so
> etc.
> 
> ##########################################
> #!/usr/bin/perl -w
> use strict;
> use File::Basename;
> use File::Find;
> my $name;
> my $dirname= '/usr/lib';
> 
> find (\&found, $dirname);
> 
> sub found {
> ($name) = basename("$File::Find::name");

There is really no point in using basename() like this because
File::Find provides the file name.

perldoc File::Find

[snip]
       The wanted() function does whatever verifications you
       want.  `$File::Find::dir' contains the current directory
       name, and `$_' the current filename within that directory.
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       `$File::Find::name' contains the complete pathname to the
       file. You are chdir()'d to `$File::Find::dir' when the
       function is called, unless `no_chdir' was specified.  When


> if ($name =~ m/.so/){
> print $name,"\n";
> }}
> ##########################################


#!/usr/bin/perl -w
use strict;
use File::Find;

my $dirname = '/usr/lib';

find( \&found, $dirname );

sub found {
    print "$_\n" if /\.so\./;
# or maybe
#   print "$_\n" if /\.so\.[^.]+$/;
    }



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to