2017-01-13 29 views
1

我想编写一个Perl子例程,它将字符串值或正则表达式值作为参数,并根据结果执行不同的操作。对于这个问题的缘故,只是返回"regex"如果它是一个正则表达式的值,并"string"如果它不是一个正则表达式:将正则表达式或字符串传递给Perl子例程

sub value_string_or_regex { 
    my ($value) = @_; 
    my $result = ''; 
    # magic here 
    return $result; 
} 

所以下面的代码会打印出“string”:

print(value_string_or_regex("hello world") . "\n"); 

而下面的代码会打印出“regex”:

print(value_string_or_regex(qr/^.*world$/) . "\n"); 

回答

1

我建议针对自认为这"hello\s+world"返回的结果与qr/hello\s+world/返回的结果一样多。

也就是说,您可以使用内建的re::is_regexp来检查标量是否包含由qr编译的正则表达式模式。

相关问题