String Perl:包含可变值模式的字符串

String Perl:包含可变值模式的字符串,string,perl,String,Perl,我在一个变量$k_name中传递各种名称。我想看看$txt_字符串是否包含存储在变量“$k_name”中的名称 我尝试过的代码: if ($string =~ /$k_name/) { print TXTFILE "Got Name: ".$k_name."\r\n"; } 如果“contains”是指真正的子字符串,则不需要正则表达式,只需使用: 看看问题是什么?@choroba为什么不起作用?{scurries away}@user2864740:它对我有效。如果$k_name包

我在一个变量$k_name中传递各种名称。我想看看$txt_字符串是否包含存储在变量“$k_name”中的名称

我尝试过的代码:

if ($string =~ /$k_name/)
{
     print TXTFILE "Got Name: ".$k_name."\r\n";
}

如果“contains”是指真正的子字符串,则不需要正则表达式,只需使用:


看看问题是什么?@choroba为什么不起作用?{scurries away}@user2864740:它对我有效。如果$k_name包含正则表达式元字符,它将不起作用,例如+,?,[etc./\Q$k_name/将解决这个问题。
if (-1 < index $txt_string, $k_name) {
    print TXTFILE "Got name: $k_name.\n";
}
my $k_name = 'John';
my $txt_string = 'Joe Smith John Doe';