【发布时间】:2014-12-26 21:51:02
【问题描述】:
有什么区别
$mech -> field($name, $value)
和
$mech -> set_fields($name => $value)
为什么它们都存在?似乎他们每个人都将名为 $name 的字段设置为 $value。
【问题讨论】:
-
有时相同的动作可能有两种不同的方式。我不会过分担心——这通常是因为有人试图编写代码来支持两种不同的范例。
有什么区别
$mech -> field($name, $value)
和
$mech -> set_fields($name => $value)
为什么它们都存在?似乎他们每个人都将名为 $name 的字段设置为 $value。
【问题讨论】:
$mech -> field($name, $value)
field() 一次只能设置一个名称。但是
$mech -> set_fields($name => $value, $name2 => $value2,... $nameN => $valueN)
...set_fields() 允许您同时设置多个名称。
这没什么大不了的,因为您总是可以在循环中使用第一个:
my @data = (
first => 'A',
last => 'B',
age => 22,
#possibly 100,000 other name/value pairs
);
my($name, $value);
while(@data) {
($name, $value) = splice(@data, 0, 2);
$mech->field($name, $value);
}
...不过写起来更方便:
$mech->set_fields(@data);
【讨论】: