2017-01-13 30 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編譯的正則表達式模式。

相關問題