问题标签 [subroutine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
302 浏览

perl - 仅当文件尚未在 Perl 中打开时,如何才能打开它?

如果我有一个打开文件的子例程,那么确保它仅在第一次调用子例程时打开它的最佳方法是什么?我有这个但不确定它是否是最佳实践:

0 投票
4 回答
176 浏览

arrays - 为什么我的 Perl 在最后循环了一个?

我有这个程序没有按预期工作。帮我。

我想打印一个行标题。

如果输入是4,我想1|2|3|4被输出。

它不能完全起作用,如果我对$count值进行硬编码,它会部分起作用,但最后一个数字丢失了。

0 投票
2 回答
368 浏览

perl - Perl 分析中的 CORE:match (opcode) 子例程是什么?

我之前在 Perl 中编写了一些实用程序,现在我正在重写它们以提供一些新的/更好的功能。然而,事情似乎比原来的实用程序慢得多,所以我决定用 NYTProf 分析器运行一个。顺便说一句,伟大的探查器,仍在试图找出所有有用的功能。

所以无论如何,事实证明我的程序 93% 的时间都花在了GeneModel::CORE:match (opcode)对子例程的调用上,我知道这是什么。大多数谷歌点击指向其他人发布的 NYTProf 个人资料。我确实编写了GeneModel类/包,但我不知道这个子例程是什么,为什么它被调用了这么多次,或者为什么它需要这么长时间。有任何想法吗?

0 投票
3 回答
218 浏览

perl - () 在 Perl 的子程序定义中完成了什么?

以下代码直接取自 Tie::File 模块的源代码。在这种情况下,空括号在 O_ACCMODE 的定义中起到什么作用?我知道子程序原型的用途,但这种用法似乎与此无关。

0 投票
4 回答
789 浏览

perl - 为什么在子例程中调用 print 会将 1 附加到字符串?

我创建了以下子程序性别来随机打印字符串 MALE 或 FEMALE。当调用子程序时,打印命令在字符串末尾添加一个“1”后缀。请参阅下面的示例代码和输出:

请注意,“1”后缀为“MALE”或“FEMALE”

输出:

我正在使用perl v5.8.9 v5.8.9为 MSWin32-x86-multi-thread 构建

Binary build 826 [290470] provided by ActiveState http://www.ActiveState.com Built May 24 2009 09:21:05

0 投票
2 回答
427 浏览

perl - 在 Perl 中封装递归函数

我有一个在这里运行良好的代码:

我想要做的是生成一个更通用的子程序,以便它只\%graph, $start,$end作为输入并返回最终数组。

我试图这样做,但它没有编译。

正确的方法是什么?

0 投票
4 回答
7813 浏览

perl - 如何内联 Perl 子例程?

我正在阅读Code Complete 2,其中提到的要点之一是关于创建子例程,即使对于那些看起来太简单而无法拥有自己的子例程的操作,以及这有什么帮助。

我知道我可以使用关键字在 C 和 C++ 中内联函数。inline但是我从来没有遇到过在 Perl 中内联子程序的方法。

有没有办法告诉 Perl 解释器内联子例程调用(或者为什么不内联)?

0 投票
3 回答
5508 浏览

perl - @_ 在 Perl 子例程中如何工作?

我一直确信,如果我给 Perl 子例程传递一个简单的标量,它就永远不会在子例程之外改变它的值。那是:

因此,如果我想foo()更改x,我必须将它的引用传递给x.

然后我发现事实并非如此:

数组元素也是如此:

这让我有点吃惊。这是如何运作的?子程序不是只获取参数的吗?它怎么知道它的地址?

0 投票
2 回答
178 浏览

perl - 为什么这行 Perl 本身只包含一个变量?

我越喜欢 perl,我越是喜欢它,但我对我在正在查看的模块的子例程中看到的一行有疑问。

让我感到震惊的是,这$var一切都在一条线上。这只是一种迂回的返回方式1吗?

非常感谢!

0 投票
3 回答
168 浏览

regex - 查找子程序的最后一个“}”

假设我有一个带有 Perl 代码的文件:有人知道,是否有一个模块可以在该文件中找到某个子例程的结束“}”。例如:

该模块应该能够删除整个routine_one,或者它应该可以告诉我该例程中关闭“}”的行号。