当我跑步时:

perl -e '$x="abc\nxyz\n123"; $x =~ s/\n.*/... multiline.../; printf("str %s\n", $x);'


我希望结果是:

str abc... multiline...


相反,我得到

str abc... multiline...
123


我要去哪里错了?

最佳答案

$x =~ s/\n.*/... multiline.../s


/s修饰符告诉Perl将匹配的字符串视为单行,这导致.匹配换行符。通常不会,导致您观察到的行为。

08-28 01:54