【发布时间】:2015-07-27 13:06:55
【问题描述】:
在我的家庭作业中,有人告诉我在 Perl 中创建一个子例程,当在其中调用参数时,它会打印参数。我这样做了,我作业的第二部分是在第二个子程序中调用第一个子程序。所以我做了所有这一切,但问题是:尝试在调用第一个子程序时使用“&”运行第二个子程序,没有它并写下这两个不同调用的区别是什么。所以子程序似乎在两种情况下都可以完美地工作,无论有没有,但我只是不知道它真正改变了什么,因此我不知道该写什么。 题外话,我的代码看起来不错吗?第一次用这个 Perl 编码。
这是代码:
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
show_args('fred','barney','betty');
show_args_again();
sub show_args{
my ($broj1, $broj2, $broj3) = @_;
print "The arguments are: " . "$broj1, " . "$broj2, " . "$broj3.\n";
}
sub show_args_again{
&show_args('fred','barney','betty');
}
【问题讨论】:
-
欢迎来到 Stack Overflow!这是一个公平的问题。关于您的代码,它看起来不错。你有
strict和warnings。名字很清楚。我怀疑$broj1指的是您母语中的argument。你应该决定是否要坚持使用英语,并坚持这个决定。print行最好写成print "foo: ", join(',', $broj1, $broj2, $broj3), "\n";。请注意,say不在 Perl 5.10 中。 -
代码看起来不错,但我建议一次只做一件事stackoverflow.com/questions/8912049/…
-
@simbabque:
say在 Perl v5.10 中引入 -
@Borodin: perldoc.perl.org/5.10.0/search.html?q=say 没有找到它。但是perldoc.perl.org/5.10.0/functions/say.html 存在。奇怪的。我站得更正了。 :)
-
@simbabque:在
perl5100delta
标签: perl subroutine