我的任务是转移" 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;
}
答案 0 :(得分:3)
您正在使用3个缩进空格而不是口述的4个空格。
你的全局变量(你说是由config.pl设置)应该以大写字母开头;你还需要申报他们;现在的代码不会编译。