【问题标题】:WWW::Mechanize field methodsWWW::机械化现场方法
【发布时间】:2014-12-26 21:51:02
【问题描述】:

有什么区别

$mech -> field($name, $value)

$mech -> set_fields($name => $value)

为什么它们都存在?似乎他们每个人都将名为 $name 的字段设置为 $value

【问题讨论】:

  • 有时相同的动作可能有两种不同的方式。我不会过分担心——这通常是因为有人试图编写代码来支持两种不同的范例。

标签: perl mechanize textfield


【解决方案1】:
$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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    相关资源
    最近更新 更多