gpt4 book ai didi

regex - Perl如何将正则表达式传递给我的子例程,如grep

转载 作者:行者123 更新时间:2023-12-02 07:28:46 30 4
gpt4 key购买 nike

print grep /test/, "mytestphrase";

使用 grep 语法,您可以传入不带引号的正则表达式。我希望我的子程序具有如下相同的行为:

use strict; 
use warnings;

sub testsub {
my $regex = shift;
my $phrase = shift;

print grep $regex, $phrase;
}

testsub /test/, "mytestphrase";

但是,它会在 testsub 调用之前尝试针对我的正则表达式评估 $_,并发出以下错误:

Use of uninitialized value $_ in pattern match (m//) at ./a.pl line 14.

是否可以像 grep 命令一样调用 testsub 以及必须如何修改子例程以支持它?

最佳答案

像这样传递参数:

testsub qr/test/, "mytestphrase";

$regex的使用也改为/$regex/:

#!/usr/bin/perl

use strict;
use warnings;

sub testsub {
my $regex = shift;
my $phrase = shift;
print grep /$regex/, $phrase;
}

testsub qr/test/, "mytestphrase";

关于regex - Perl如何将正则表达式传递给我的子例程,如grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24490481/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com