On Apr 6, 12:07 pm, [EMAIL PROTECTED] (John W. Krahn) wrote:
> "Your program" was actually generated by the 'find2perl' program and as
> such has a lot of stuff in there that you don't need.  It could be
> simplified to:
>
> #!/opt/local/bin/perl
> use warnings;
> use strict;
> use File::Find;
>
> no warnings 'File::Find';
>
> find sub {
>      print "$File::Find::name\n" if $_ eq 'libaest.dylib';
>      }, qw{ /usr/lib /usr/lib64 /usr/local/lib /opt /lib /lib64 };
>
> __END__

Hi John,

Thanks for the tip. It works as you described:

#!/opt/local/bin/perl5.10.0
use strict;
use warnings;

use File::Find;
no warnings 'File::Find';

my @libdir = ( "/usr/lib", "/usr/lib64", "/usr/local/lib", "/opt", "/
lib", "/lib64",);

find sub
{
        print "$File::Find::name\n" if $_ eq 'libaest.dylib';
}, @libdir;

Unfortunately I'm not sure if I can use it this way (I'm new to Perl).
What I'm doing is building a string that contains a command that will
end up running a set of Java binaries. This works but it is a lot more
code than your example.

#!/opt/local/bin/perl5.10.0
use File::Find ();
use strict;
use warnings;
no warnings 'File::Find';
my $javaLibPath;
sub libaestPath;

# for the convenience of &libaestPath calls, including -eval
statements:
use vars qw/*name *dir/;
*name   = *File::Find::name;
*dir    = *File::Find::dir;

my @libdir = ( "/usr/lib", "/usr/lib64", "/usr/local/lib", "/opt", "/
lib", "/lib64",);

# Traverse desired filesystems
File::Find::find(\&libaestPath, @libdir);

print "debug java path:\n";
print "java -Djava.library.path=$javaLibPath -cp
<path_to_jar:path_to_tests>/bin com.foo.foo.java_test\n";

sub libaestPath
{
    if(/^libaest\.(a|so|dylib)\z/s && -f)
    {
                $javaLibPath = $dir;
        }
}


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to