Lktee wrote:
> 
> Hi, now I design another way.

Hello,

> First I request user enter the directory want to search first, if the
> directory exist in the system, script will search the entire directory. If
> the filename is same will display out, else no result will return. If
> directory not exist will request user try another directory.
> 
> So, the script like below:
> 
> #!/usr/bin/perl
> use warnings;
> use strict;
> use File::Find;
> find ( \&callback, "/$target");
> 
> my $target;
> while (1) {
>         print "what directory want search?";
>         $target = <STDIN>
>         chmod $target;
>         if (-d $target) {
>                 print "Yes, target is a directory.\n";
>                 next;
>         }
>         else{
>                 print "No, $target not a directory.\n";
> 
>         sub callback{
>                 print $File::Find::name, "\n" if $File::Find::name =~
> /File1$/;
> }
> 
> May I know any wrong in my coding? Because I cannot run the script. Any idea
> about this?

You need to put the find() call in the loop and put the sub callback {}
outside the loop and you also need to chomp the contents of $target.


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

sub callback {
    print "$File::Find::name\n" if $_ eq 'File1';
}

my $target;
while (1) {
    print "what directory want search?";
    chomp( my $target = <STDIN> );
    unless ( -d $target ) {
        print "No, $target not a directory.\n";
        next;
    }
    print "Yes, target is a directory.\n";
    find( \&callback, $target );
}



John
-- 
use Perl;
program
fulfillment

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


Reply via email to