Thanks for everyone's replies. It helped a lot. It ended up like this.
My next question is the use of the array reference, @list. Is it bad
form?


#!/usr/bin/perl -w

use strict;
use File::Find;

if (1) {
          my $dir = "/var/SAMPLES";
        my @list;

        find ( { wanted=>sub { &found([EMAIL PROTECTED]) }, no_chdir=>1 }, $dir 
);
        print @list;
}

sub found {
        my $list = shift;
        ## Do some string processing here...
        push @{$list}, $_ if -f $_;
        return;
}



-----Original Message-----
From: Dan Sopher [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 16, 2007 3:46 PM
To: beginners@perl.org
Subject: File::Find help



Hello. The following code example creates a list of regular files in a
directory. Using File::Find, I'm unable to localize an array to hold the
list of files. Is there a way to create the list with a localized array?
TIA.



#!/usr/bin/perl -w
## Create a list of regular files in a directory.

use strict;
use File::Find;

my @list; ## Don't want this here
if (1) {
        ## I'd like @list to be localized to this scope,
        ## and not in main

        find ( { wanted=>\&found, no_chdir=>1 }, "/var/SAMPLES" );

        print @list;
}


sub found {
        push @list, $_ if -f $_;
}



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



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


Reply via email to