使用Perl样式指南规则

时间:2014-11-09 08:42:36

标签: perl optimization coding-style

我的任务是转移" 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;
}

1 个答案:

答案 0 :(得分:3)

您正在使用3个缩进空格而不是口述的4个空格。

你的全局变量(你说是由config.pl设置)应该以大写字母开头;你还需要申报他们;现在的代码不会编译。