fasoli has asked for the wisdom of the Perl Monks concerning the following question:
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?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Use of uninitialized value $_ in pattern match (m//)?
by hippo (Archbishop) on Feb 29, 2016 at 15:19 UTC | |
|
Re: Use of uninitialized value $_ in pattern match (m//)?
by Corion (Patriarch) on Feb 29, 2016 at 15:20 UTC | |
by fasoli (Beadle) on Feb 29, 2016 at 15:36 UTC | |
by poj (Abbot) on Feb 29, 2016 at 15:46 UTC | |
by Corion (Patriarch) on Feb 29, 2016 at 15:42 UTC | |
by AnomalousMonk (Archbishop) on Feb 29, 2016 at 16:22 UTC |