Thread allgemeine Frage zur Verbesserung von Code (20 answers)
Opened by mark05 at 2010-12-20 14:04

topeg
 2010-12-28 19:28
#143857 #143857
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Diese Stelle aus Csd.pm:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sub new {
my @opt=@_;
my ($klasse,$dbg,$args);
my $csdobj = {};
$klasse = $opt[0];
$args = $opt[1];
my $mypath = \$args->{'cfgpath'} ;
$dbg = \$args->{'debug'} ;
my $ips = \$args->{'remoteips'} ;
if (${$dbg} ne q{} ) { print "$PROGRAM_NAME | Csd | new | uid = $UID | debug = ${$dbg}\n" or croak $ERRNO; }
$csdobj->{'debug'}=${$dbg} || '0';
$csdobj->{'ConfigPath'}=${$mypath} || '0';
$csdobj->{'remoteips'}=${$ips};
$fw=Fwng->new({debug=>${$dbg},});
#$fw=Fwng->new({debug=>q{},});
#$hgltools=hgltools->new(${$dbg});
# hglssh
$hglssh=Hglssh->new({debug=>${$dbg},});
bless $csdobj,$klasse;
return $csdobj;
} # end sub new

würde ich so schreiben:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
sub new {
my $class = shift;
my $args = shift || {};

# Referenz auflösen "$obj->new(...)"
$class=ref($class) || $class;

# es ist "konvention" die Objektvariable "$self" zu nennen
# so was erleichtert anderen den Code schnell zu überschauen
my $self = {};

$self->{'ConfigPath'} = $args->{'cfgpath'} || 0;
$self->{'debug'} = $args->{'debug'} || q{};
$self->{'remoteips'} = $args->{'remoteips'} || 0;

if ($self->{'debug'} ne q{} )
{ print "$PROGRAM_NAME | Csd | new | uid = $UID | debug = $self->{'debug'}\n" or croak $ERRNO; }

bless $self,$class;

$fw=Fwng->new({ debug=>$self->{'debug'} }) unless($fw); # nur einmal initialisieren
#$fw=Fwng->new({ debug=>q{} });

#$hgltools=hgltools->new($self->{'debug'});

# hglssh
$hglssh=Hglssh->new({ debug=>$self->{'debug'} }) unless($hglssh); # nur einmal initialisieren

return $csdobj;
} # end sub new


Weiterhin würde auch in Funktionen sauber einrücken, auch wenn es die Struktur in die Breite zieht.
Ich finde solche stellen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
        });
} # end if flip flop
  $zz++;
  } # end while $#xmlcontent >= $zz
      $z++;
  } # end while files 
  return ('ok');
} # end sub csd_modul_reload

trotz aller Kommentare schwer zu lesen.
Last edited: 2010-12-28 19:35:29 +0100 (CET)

View full thread allgemeine Frage zur Verbesserung von Code