Thank you all so much. And thank you timothy for the clarification. I do use
the use strict. I don't tend to use the warnings much, guess maybe I should
at least during development.

Thanks Again!

Curt

-----Original Message-----
From: Timothy Johnson [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, February 28, 2006 5:50 PM
To: Curt Shaffer; beginners@perl.org
Subject: RE: regular expression in a variable


If you declare a variable with my(), it only exists within the current
scope  (NOTE:  always add 'use strict' and 'use warnings' whenever you
can at the top of your scripts).

What you'll have to do is declare a variable outside of the brackets.
You could even use a subroutine, like the one below.  When it matches,
I'm returning the name of the file.  If I get through the whole loop
without matching, I'm returning 0 to indicate that it failed.

#########################

use strict;
use warnings;

my $file;

if($file = GetTestFileName()){
   print "I got it!  $file\n";
}else{
   print "Failed to locate test file!\n";
}


sub GetTestFileName{
   opendir(DIR,".") or die("Couldn't open the current directory!\n");
   my @files = readdir(DIR);
   foreach my $testfile(sort @files){
      if($testfile =~ /(.*test.*)/i){
         return $testfile;
      }
   }
   return 0;
}

##########################




-----Original Message-----
From: Curt Shaffer [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, February 28, 2006 1:11 PM
To: Timothy Johnson; beginners@perl.org
Subject: RE: regular expression in a variable

That appears to work! The part I am stuck on is how to I take that value
(which would now be $file in your example) and put it into a variable
that I
can use through the rest of the script. When I then try to use $file
outside
of that routine, it is no longer the same value.

I really appreciate your help!



<snip>

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to