我拥有的一段历史 Perl 代码具有以下功能:

sub binds { join(",", ("?")x$_[0]) }

稍后使用 binds(4) 等调用它。据我所知,它正在加入 ? s 和 , s,但我不知 Prop 体是如何加入的,我也不了解 x$_[0] 部分。

最佳答案

这个函数接受一个整数(比如 n )作为它的第一个参数,并返回一个由逗号分隔的 n 问号字符串。这是它的分解方式:

sub binds {
  join(",", ("?") x $_[0]);
  #         │     │ └──── the first argument to the subroutine.
  #         │     └── the repetition operator (think multiply).
  #         └─── a list containing only the string literal "?".
}
binds(4) # => "?,?,?,?"

它可能是数据库接口(interface)的实用函数,用于创建指定数量的 ? 占位符,这些占位符稍后将作为 SQL 语句的一部分绑定(bind)到某些特定值。

关于perl - 这个子程序究竟是做什么的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9689999/

10-11 22:57
查看更多