I have a hash which looks something like this:
%hash = ( foo => 'a', bar => 'b', filespec => "$filespec");
 
I also have a function which includes the following code:
 
   # Figure out if we were passed a filename or an array ref
   if (  exists $info -> {filespec}  ) {
 
      $filespec = $info -> {filespec};
 
      if ( ref($filespec) eq "ARRAY" ) {
         #process filenames from array;
         print "filespec = $filespec, filespec type = ", ref($filespec),
"\n";
         print "Processing an array\n";
      } else {
         print "Processing single filename: $filespec\n";
         print "filespec = $filespec, filespec type = ", ref($filespec),
"\n";
      }
   } else {
      die "No Files passed in for processing!\n";
   }
 
__END__
 

I'm passing a reference to the hash into the function. The function is
actually
contained in a module I'm developing, but I don't think that should matter?
 
When processing gets to this part of the code the "if" condition always
fails
Instead it always processes the "else" block.                   
 
When $filespec is a string I get (correct) output that looks like this:
   filespec = somefile.txt, filespec type =
 
When $filespec is an arrayref I get (incorrect) output that looks like this 
out of the else block:
   filespec = ARRAY(0x3c01b424), filespec type =
 
where I expect to see something like:
   filespec = ARRAY(0x3c01b424), filespec type = ARRAY
 
Anybody see where I've gone wrong?
 
Thanks for the help!
 
richf
                                                               

-- 
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