之间有什么区别
$mech -> field($name, $value)
和
$mech -> set_fields($name => $value)
为什么它们都存在?看起来他们每个人都将名为$name
的字段设置为$value
。
答案 0 :(得分:4)
$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);