From:                   Dermot <[EMAIL PROTECTED]>
> 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}) {

You never called the referenced subroutine. To do that you have to 
use

    if ($_->{$l}->()) {
or
    if (&{$_->{$l}}) {

The $_->{$l} is the reference and references are always true.

Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


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


Reply via email to