Hi All, I was have to create a script to search and find files. The files will end in 'a.txt', 'b.txt', 'c.txt', so a record could have 123a.txt, 123b.txt, 123c.txt.
There may be lots of ways to achieve my goal but I got curious about how to create a structure that, for each record would store the associated files. Below is what I started out with. The hash tries 3 ways to either return a code reference or a true/false value if the file exists. I have tried putting junk values in the hash values - sub { return -e "$File::Find::dir/${num}Z.txt"} - but it always ouputs with a YES. So how do you create a code reference in this context, should I create a code reference or use something else and what should I be test the hash values for? Thanx in advance. Dp. #!/usr/bin/perl use strict; use warnings; use File::Find; my $root = shift; my @records; find(\&wanted, $root); for (@records) { print $_->{name},"\t"; foreach my $l (qw/a b c j/) { if ($_->{$l}) { print "YES\t"; } else { print "No\t"; } } print "\n"; } sub wanted { my ($num,$let) = ($_ =~ /(\d+)([\w{1}])\.txt/); print $_, " $num Let=$let\n" if ($let !~ /i|j|k/) ; my @sizes = qw(a b c d e f h i j k); my %file = ( name => "f001/$num", a => sub { return -e "$File::Find::dir/${num}a.txt"}, b => sub { return -e "$File::Find::dir/${num}b.txt"}, c => sub { return does_exist("$File::Find::dir/${num}c.txt") }, j => \&does_exist("$File::Find::dir/${num}c.txt"), ); push(@records, \%file); } sub does_exist { my $file = shift; return sub { return -e $file }; } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/