Моя задача состоит в том, чтобы передать правила «Perl Руководство Стиль» на следующий код:Использование 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», похоже, не согласны с руководствами. Почему мы должны пытаться применить то, что выглядит устаревшим? – choroba
Я думаю, что http://codereview.stackexchange.com/ - лучший сайт для публикации этого вопроса –