You're mistaken about the content of the variables. What's the output of the following:
{ use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@temp; print Dumper $_jobcard_basename; print Dumper \@found_files; }
Maybe your input hasn't been chomped? It behaves as you think it should:
use strict; use warnings; my @temp = '/iri/irs-dev2/dairyassoc/job.trigger/RUNNING.sub-D625448-1 +.pdi_chs.xml'; my $_jobcard_basename = 'pdi_chs'; my @found_files = grep (/$_jobcard_basename/,@temp); print("Found ", scalar(@found_files), " file(s):\n"); print("$_\n") for @found_files;
Found 1 file(s): /iri/irs-dev2/dairyassoc/job.trigger/RUNNING.sub-D625448-1.pdi_chs.xml
By the way /$_jobcard_basename/ should be /\Q$_jobcard_basename\E/ if $_jobcard_basename contains a string rather than a regexp pattern. It happens to not matter for the particular value it has at the moment.
In reply to Re: A question in grep
by ikegami
in thread A question in grep
by kprasanna_79
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |