Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Perl中使用Grep进行搜索_Perl - Fatal编程技术网

在Perl中使用Grep进行搜索

在Perl中使用Grep进行搜索,perl,Perl,我有下面的代码。我需要搜索筛选日期中是否存在todaydate。但是,下面的代码不起作用。你能帮个忙吗,我错过了什么 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @filterdates={FD=>'08/30/2020',TD=>'08/31/2020'}; my $todaydate='08/30/2020'; if ( grep{/^$todaydate$/} @filterdate

我有下面的代码。我需要搜索筛选日期中是否存在todaydate。但是,下面的代码不起作用。你能帮个忙吗,我错过了什么

#!/usr/bin/perl 
use strict; 
use warnings;
use Data::Dumper; 
my @filterdates={FD=>'08/30/2020',TD=>'08/31/2020'}; 
my $todaydate='08/30/2020'; 
 
if ( grep{/^$todaydate$/} @filterdates) { 
        print Dumper ("Found"); 
}
这里有几个问题

首先,
@filterdates
是一个数组变量。但是,
FD=>'08/30/2020',TD=>'08/31/2020'
看起来您想将其用作散列

其次,使用列表初始化数组和哈希:

my @filterdates = (FD=>'08/30/2020',TD=>'08/31/2020');

您正在使用
{…}
初始化数组<代码>{…}提供对匿名哈希的引用。因此,您的数组包含一个类似于
散列(0X1234567890AB)
的元素,它永远不会与日期字符串匹配

如果你能更清楚地知道你想做什么,那么我们可能会帮助你解决它

这里有几个问题

首先,
@filterdates
是一个数组变量。但是,
FD=>'08/30/2020',TD=>'08/31/2020'
看起来您想将其用作散列

其次,使用列表初始化数组和哈希:

my @filterdates = (FD=>'08/30/2020',TD=>'08/31/2020');

您正在使用
{…}
初始化数组<代码>{…}提供对匿名哈希的引用。因此,您的数组包含一个类似于
散列(0X1234567890AB)
的元素,它永远不会与日期字符串匹配


如果您能更清楚地了解您正在尝试执行的操作,那么我们可能可以帮助您修复它。

@filterdates
应该是散列而不是数组(使用单个hashref)?同意。我修改了下面的行my@filterdates={FD=>'08/30/2020',TD=>'08/31/2020'};我的@filterdates=('08/30/2020','08/31/2020');它工作了
@filterdates
应该是一个散列而不是一个数组(使用一个hashref)?同意。我修改了下面的行my@filterdates={FD=>'08/30/2020',TD=>'08/31/2020'};我的@filterdates=('08/30/2020','08/31/2020');它成功了
my %filterdates = (FD=>'08/30/2020',TD=>'08/31/2020');