我有一個關於匹配多個組的正則表達式的處理/返回數據類型的問題。 考慮這條線:返回數據類型的Perl正則表達式匹配組
($pre, $middle, $post) = $text =~ /(.*)Telefon:(.+)(Fax:.*)/;
它指定$文字,$匹配部分的預值,$中,$發佈爲列表,我想! 所以我想檢查之前返回匹配的數量。由於返回的數據類型是一個列表,我假設了以下工作:
if (scalar ($text =~ /(.*)Telefon:(.+)(Fax:.*)/) == 3) { do something }
這個問題似乎是
(scalar ($text =~ /(.*)Telefon:(.+)(Fax:.*)/)
回報1
,雖然如預期以下工作(返回值3
):
my @arr = $text =~ /(.*)Telefon:(.+)(Fax:.*)/;
scalar @arr
似乎有一些Perl的神奇事情。我能做些什麼來獲得期望值而不需要在兩者之間分配一個值(@arr
)?