Below is a script I've put together that is supposed to read names from a file and using the system's grep program determine if those names are in a spreadsheet. The script runs the grep program, but receives errors such as: "No such file or directory," in spite of the files existing. My hunch is there is an issue with how my script handles spaces in the arguments - i.e. the names & directories. Anyone know what I've done wrong? Help is appreciated.
#!/usr/bin/perl my $can_list; my $can_archive; if (@ARGV) { $can_list = $ARGV[0]; $can_archive = '\"'.$ARGV[1].'\"'; } else { die "Need both new candidate list and candidate list archive!"; } # Open candidate list open LIST, $can_list or die "Cannot open new candidate list file! $!"; # Open results log open LOG, ">/data/My Documents/candidates_results.log" or die "Could n +ot open candidate search log!"; while (<LIST>) { @results = `grep -i $_ $can_archive`; foreach $result (@results) { print LOG $result . "\n"; } } close LOG; close LIST;
NOTE: the names file looks like:
Jon Doe Jim Jonson Dan Smith
In reply to Executing external program via backquotes by King0
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |