Dear monks,
I've been using the code below to match some files in the path described in the code. However I'm getting a "Use of uninitialized value $_ in pattern match (m//)" error.
#!/usr/bin/perl/ use strict; use warnings; my $i; my $j; my $k; my $l; my $id = "AC"; my $moved; for ($i=2; $i<=3; $i++) { my $j = sprintf ("%04d", $i); for ($k=1; $k<=3; $k++) { my $l = sprintf ("%05d", $k); my $path; $path = "/home/results/initial/$id$j/F${l}"; chdir "$path"; /MV(\d{4})/; $moved = $1; print "$moved\n"; } }
I seem to be getting this error even though I have changed directory into the directory specified in the path - which is something I don't want to do, I want to give the absolute path each time, but I was just trying to see if it would solve my problem. I also ran the script using perl -wc to check syntax/warnings but it comes back as "syntax correct". Also, if I do print `ls $path/MV*`; it finds the files fine and prints them. What do you think could be the source of my problem?
In reply to Use of uninitialized value $_ in pattern match (m//)? by fasoli
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |