在我的 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
和/或//
操作员的工作方式。