问题标签 [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 回答
35454 浏览

perl - 什么时候应该使用 & 来调用 Perl 子例程?

我听说人们不应该&用来调用 Perl 潜艇,即:

我知道其中一个参数列表是可选的,但是在哪些情况下适合使用它,而&在哪些情况下你绝对不应该使用它?

另外,当省略&?

0 投票
9 回答
3237 浏览

perl - 在 Perl 中输入无效输入时,如何要求用户重新输入输入?

我有一个 Perl 子程序,它询问用户的输入。我在该子例程本身内部执行检查输入的输入是否为有效输入。

如果不是,我想再次调用子程序,让用户这次输入有效的输入。

我的子程序如下:

那么如何在其中递归一个子程序呢?

0 投票
4 回答
255 浏览

perl - 如何正确调用需要 2 个子例程引用的子例程?

想象一下这个子程序:

我知道我可以这样称呼它:test(\&sub1,\&sub2),但我怎么能这样称呼它:

如果我说子程序只需要一个&,那么发送一个块就可以了。我不知道如何使它与2一起使用。

如果我尝试这样运行它,我会得到:

编辑:没有就没有办法调用sub吗?

0 投票
3 回答
3636 浏览

perl - 在 Perl 子例程中使用标签是否被认为是一种不好的做法?

我发现在 Perl 子例程中使用标签,打破多个循环,或者用更新的变量重做某些部分,非常有帮助。社区如何看待这种编码风格?在子程序中使用标签是否令人不悦?

0 投票
1 回答
614 浏览

windows - Windows Shell 脚本:无法在子例程中进行字符串替换

尊敬的专家您好!

您能否建议我如何处理该问题:

此代码在屏幕上回显,而不是写入“ExtractedLinks.txt”。这里有什么问题?

0 投票
6 回答
19193 浏览

perl - 为什么我的 Perl 代码中出现“调用太早无法检查原型”警告?

我有一个这样的 Perl 文件:

简而言之,f1在定义之前被调用。因此,Perl 抛出一个警告:“f1 调用太早,无法检查原型”。但情况也是如此f2,唯一的区别是它是从另一个子例程内部调用的。它不会为f2. 为什么?

解决此问题的最佳方法是什么?

  1. 在调用子程序之前声明它
  2. 像这样调用子:&f1();
0 投票
1 回答
9692 浏览

perl - Perl - 将参数作为哈希键值对问题传递给子例程

我必须将两个引用作为参数传递给子例程(buildRanges)作为哈希键值对,如下所示

例子:

我的问题是
1. 上述子程序调用的语法是否正确?
2.什么是VALUES和REF_RANGES?

坦率地说,我无法理解子程序调用,但我被告知只能使用该调用。

谢谢。

KK

0 投票
5 回答
1591 浏览

perl - 为什么我在使用 `do` 函数时无法加载 Perl 库?

我是 Perl 的新手,我正在更新一个旧的 Perl 网站。每个.pl文件的顶部似乎都有这一行:

所以我想我可以使用这个文件来标记一个子程序以供全局使用。

函数公司

索引.pl

但是,我收到此错误:

这两个文件都在同一个目录中,并且func.inc已经在整个网站中使用了 subs 的音调。但是,该脚本适用于 Linux 生产环境,但不适用于我的 Windows 7 开发环境(我使用的是 ActivePerl)。

更新:

看起来该文件未包含在内;如果使用绝对路径包含文件,则 sub 工作...

...所以看起来相对路径不适用于我的本地开发环境,但它们可以在生产环境中工作。但这对我没有好处,因为我的开发机器上的绝对路径不适用于实时服务器。

如何do在我的 Windows 7 开发机器上使用相对路径开始工作?

更新 2:

我正在使用 Perl-T开关。不幸的是,这删除了“。” 来自@INC,因此阻止我们使用相对路径do。我删除了这个开关,旧代码现在可以工作了。我知道这不是一个好习惯,但不幸的是我正在使用旧代码,所以我似乎别无选择。

0 投票
5 回答
3785 浏览

perl - 我应该将不带参数的 Perl 子例程称为 Marine() 还是 Marine?

根据我下面的示例代码,调用子例程有两种样式:subnamesubname().

如果调用中没有参数,哪一个&marine();或是更好的选择?&marine;

0 投票
2 回答
2301 浏览

perl - 如何将参数传递给使用 eval 定义的 Perl 子例程?

我正在使用配置文件(在 Y​​AML 中)来定义稍后用于验证我的应用所需的其他配置值的类型:

这个想法是对eval每个类型定义,将它们放入哈希中,然后调用以验证配置数据(以下是易于理解的示意图):

问题是 %type_sub 中的子例程似乎不接受参数。在上述情况下,第一个打印语句输出-1,而第二个输出:

这根本不是我所期望的,但是正在调用子例程。

我究竟做错了什么?

编辑:我很马虎,现在一切正常。感谢弗里多。