Thread MP3Tagger: Ein MP3-Tag-Editierungsprogramm (13 answers)
Opened by Hrhon at 2006-04-22 23:39

Strat
 2006-04-24 02:10
#38707 #38707
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
die folgenden sachen sind mir auf die schnelle aufgefallen:

vielleicht das hauptprogramm noch in mehrere subroutinen aufteilen? du hast da eine Menge an code mit
Code: (dl )
1
2
3
4
if ( exists $Options{xxxxx}) {
# ein paar zeilen
exit 1;
}

eine Subroutine namens CheckProgramParameters oder so koennte da entruempeln, und der leser kapiert schneller, was du da machst


du verwendest eine menge "globaler" variablen (mit our); sind die wirklich alle noetig?

mit der "tabellenschreibweise" koennte es noch etwas besser lesbar werden; und da in den zeichenketten nichts interpoliert wird, wuerde ich da einfache anfuehrungszeichen verwenden, z.B.
Code: (dl )
1
2
3
4
5
6
7
8
our %ID3v1Tags = (
name => 'title' ,
interpret => 'artist',
album => 'album' ,
erscheinungsjahr => 'year' ,
tracknummer => 'track' ,
genre => 'genre' ,
);


Code: (dl )
1
2
3
for (my $id=0;$id<@{$Genres};$id++) {
$Genres{lc($Genres->[$id])}=$id;
}

mag zwar fuer einen C-Programmierer recht gut lesbar sein, aber ich finde folgendes besser:
Code: (dl )
1
2
3
for my $id (0..$#Genres) {
$Genres{ lc($Genres->[$id]) } = $id;
} # for


sub Help: wie gefaellt dir:
Code: (dl )
1
2
3
4
5
6
7
print <<EOH;
Parameter:

-a | --ask[=tag] Kombination aus ...
-A | --All Ist diese Option ...
usw.
EOH


eine leerzeile nach jedem gedankengang macht den code meist besser lesbar (z.B. in WriteTags, CheckFrame)

ein paar leerzeichen koennen code auch besser lesbar machen, z.B.
Code: (dl )
1
2
3
$return.=$word.shift @words;
# oder
$return .= $word . shift(@words);
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread MP3Tagger: Ein MP3-Tag-Editierungsprogramm