Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl-这是函数的正确名称吗?_Perl_Naming Conventions - Fatal编程技术网

Perl-这是函数的正确名称吗?

Perl-这是函数的正确名称吗?,perl,naming-conventions,Perl,Naming Conventions,标题说明了一切。我试图为我的函数找到好的命名约定。有一些建议,但我想知道你的意见,如果可以使用较短的名称,仍然保留功能的意义。这是我的职责: sub convert_AoA_to_HoA_where_hash_key_is_element_from_particular_inner_array_index_and_hash_value_is_reference_to_this_inner_array(){ my ($argv1, $argv2, $argv3) = @_; my @AoA

标题说明了一切。我试图为我的函数找到好的命名约定。有一些建议,但我想知道你的意见,如果可以使用较短的名称,仍然保留功能的意义。这是我的职责:

sub convert_AoA_to_HoA_where_hash_key_is_element_from_particular_inner_array_index_and_hash_value_is_reference_to_this_inner_array(){
  my ($argv1, $argv2, $argv3) = @_;
  my @AoA = @$argv1;
  my $HoA = $argv2;
  my $index = $argv3;

    foreach my $array (@AoA){
    $HoA->{"$array->[$index]"} = $array;
 }
}

如果必须这样做,这可能表明现有数据结构的适用性

同样,该功能非常简单,无需使用
map
专用子例程即可复制

由于结果散列的键是特定列的值,因此另一种方法是使用散列切片来阐明目的:

my %hash;
@hash{ map $_->[$index], @AoA } = @AoA;

<> P>我只考虑把它转换成子程序的时候,如果我不能控制传入的数据结构,需要为不同的索引输出单独的散列。话虽如此,
rehash_by_column_index
是这样一个sub的更合适的名称。

如果必须这样做,这可能表明现有数据结构的适用性

同样,该功能非常简单,无需使用
map
专用子例程即可复制

由于结果散列的键是特定列的值,因此另一种方法是使用散列切片来阐明目的:

my %hash;
@hash{ map $_->[$index], @AoA } = @AoA;

<> P>我只考虑把它转换成子程序的时候,如果我不能控制传入的数据结构,需要为不同的索引输出单独的散列。话虽如此,
rehash\u by_column\u index
是这样一个sub的更合适的名称。

不必进行哲学辩论,您不需要将其作为一个函数

my %HoA = map { $_->[$index] => $_ } @AoA;

没有哲学上的争论,你不需要把它变成一个函数

my %HoA = map { $_->[$index] => $_ } @AoA;

你的函数名很快会以电影形式出现吗?我试着读小说,但没能读到。试着用短一点的。我喜欢把极其冗长的函数名和完全通用的参数名结合起来。像这样的子例程名是荒谬的。名称尽可能简短,但要具有描述性。例如sub AoA2HoA{…}。对它的详细描述可以是sub内部和开头的注释。您当前的名称可以是它上面的注释。Damian Conway的“Perl最佳实践”可以帮助您,您的函数名很快就会以电影形式出现吗?我试着读小说,但没能读到。试着用短一点的。我喜欢把极其冗长的函数名和完全通用的参数名结合起来。像这样的子例程名是荒谬的。名称尽可能简短,但要具有描述性。例如sub AoA2HoA{…}。对它的详细描述可以是sub内部和开头的注释。您当前的名称可以是它上面的注释。Damian Conway的“Perl最佳实践”可以帮助您做到这一点