在我的 perl 程序中需要
use strictures 1;
while(<>) {
    chomp;
    my($action, $v1, $v2) = map { s/XX/42/g; $_ } split /\s+/;
    print "=$action=$v1=$v2=\n";
    do_someting( $action, func1($v1), func2($v2) );
}
问题是,当输入包含 < 3 个“字段”并且我想确保所有不存在的字段都已定义并包含“DEFAULT”时。所以想要下一个:输入->将输出分配给变量
"mk aXXb ac"  -> "mk" "a42b" "ac"
"deXX ab"     -> "de42" "ab" "DEFAULT"
等等..
尝试了下一个,但不起作用。
    my($action, $v1, $v2) = map { s/XX/42/g; $_ // "DEFAULT" } split /\s+/;
它看起来比我误解map和/或//操作员的工作方式。