【问题标题】:Use Perl Style Guide rules [closed]使用 Perl 样式指南规则 [关闭]
【发布时间】:2014-11-09 08:42:35
【问题描述】:

我的任务是将“Perl 样式指南”规则转换为以下代码:

http://kulnet.kuleuven.be/perlcourse/perlingo.html

有没有人看到我到目前为止没有遵守的任何规则? (故意遗漏了头部和功能描述。)

$lnp, $pst1, $pst2 在 config.pl 中设置。

谢谢。

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

require config;

MAIN: {
   $lnp->execute( );
   while( @data = $lnp->fetchrow_array( ) ) {
      my ( $sn, $en, $portDate, $rcvCarrier, $originCarrier ) = @data;
      my ( @list ) = ();  
      if ( $en =~ /^$/ ) {
         @list = ( $sn );
      }
      else {
         @list = &calc( $sn...$en );
      }
      foreach my $prefix( @list ) {
         my $user = join "", $cc, $ndc, $prefix;  
         $pst1->execute( $user, 1 );
         if ( $rcvCarrier =~ /^$/ ) {
            next;
         }
         if ( $rcvCarrier eq $originCarrier ) {
            next;
         }
         $pst2->execute( $user, $rcvCarrier, $portDate, 1 );
      }
   }
}

sub calc {
   my( @data ) = @_;
   my( @new ) = ( );
   my( %test );
   for my $item ( @data ) {
      my( $suffix ) = chop( $item );
      $test{$item}{$suffix}++;
   }
   for my $base ( keys %test ) {
      if ( scalar( keys %{$test{$base}} ) == 10) {
         push @new, $base;
         next;
      }

      push @new, $base.$_ for keys %{$test{$base}};
   }
   if ( $#new < $#data ) {
      return calc( @new );
   }
   return @new;
}

【问题讨论】:

  • “Perl Best Practices”和“Modern Perl”似乎不同意这些指南。我们为什么要尝试应用看起来过时的东西?
  • 我认为codereview.stackexchange.com 是发布此问题的更好网站

标签: perl optimization coding-style


【解决方案1】:

您使用的是 3 个缩进空格,而不是规定的 4 个空格。

您的全局变量(您所说的由 config.pl 设置)应以大写字母开头;您还需要声明它们;目前的代码不会编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-23
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2011-08-09
    • 2015-04-24
    相关资源
    最近更新 更多