相关疑难解决方法(0)

子程序是否应该明确返回?

如果perlcritic说"没有子回报是错误的",如果真的不需要它们会有什么选择?

我养成了两个显然不好的习惯:

  • 我明确地将变量分配给'$ main ::'命名空间.
  • 然后我在subs中使用那些变量.

例如,我可能会..

#!/usr/bin/perl
use strict;
use warnings;

@main::array = (1,4,2,6,1,8,5,5,2);

&sort_array;
&push_array;
&pop_array;

sub sort_array{
    @main::array = sort @main::array;
    for (@main::array){
        print "$_\n";
    }
}

sub push_array{
    for ( 1 .. 9 ){
        push @main::array, $_;
    }
}

sub pop_array {
    for ( 1 .. 3 ){
        pop @main::array;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不是一直这样做的.但在上面,它是有道理的,因为我可以隔离操作,而不必担心来回传递值,它通常看起来整洁.

但正如我所说,perl评论家说错了 - 因为没有回报......

那么,是否有人能够解释我正在尝试做什么并建议在perl中采用这种编码风格的更好方法?例如.我有点做OOP吗?

oop perl function subroutine perl-critic

2
推荐指数
1
解决办法
1352
查看次数

标签 统计

function ×1

oop ×1

perl ×1

perl-critic ×1

subroutine ×1