Schrift
[thread]6425[/thread]

Separator mittels Variable??? (Seite 2)



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Crian
 2004-07-23 15:14
#84808 #84808
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Dein Problem wurde ja schon gelöst. Ich habe nochmal allgemeine Anmerkungen:

Code: (dl )
1
2
3
4
5
6
7
sub   fill_table()
{
       my $datei       =      $_[0];            # Dateiname
       my $src_path    =      $_[1];            # Pfad zur Datei
       my $delimiter   =      $_[2];            # Separator
       my $header      =      $_[3];            
...


Diese Art von Kommentaren empfinde ich als überflüssig, die schönen Variablennamen sagen doch genau das selbe. Außerdem finde ich die Art der Zuweisung nicht so schön (ist natürlich eine Gewöhnungssache).

Die runden Klammern müssen weg, hat Renee ja schon gesagt. Oder Du schreibst ($$$$) hin (vier skalare Parameter).

Es gibt neben Deiner Variante noch die Möglichkeiten

Code: (dl )
1
2
3
4
5
6
sub fill_table {
    my $datei     = shift;
    my $src_path  = shift;
    my $delimiter = shift;
    my $header    = shift;
...


und

Code: (dl )
1
2
3
sub fill_table {
    my ($datei, $src_path, $delimiter, $header) = @_;
...


Bei kurzen Listen und eindeutigen Namen verwende ich die unterste, bei langen Parameterlisten überlege ich mir eine andere Art der Übergabe oder wähle die mittlere Form.

Auf $_[0] greife ich eigentlich nur zu, wenn ich den Wert der Variable wirklich ändern will.

Das heißt jetzt aber nicht, dass Du es auch so machen musst - TIMTOWDI :-)

Außerdem empfehle ich dringend die durchgehende Einschränkung von Gültigkeitsbereichen der Variablen durch Deklaration per my und Sicherstellung durch use strict;.

Zusätzlich ist use warnings; und Abstellen aller angemahnter Probleme eine gute Idee.

Das hier

Code: (dl )
1
2
3
4
5
6
                  for (0..$spalten)
                     {
                       $col=$_;
                       $col=$col+1;
                       $arrayVar->{"$z,$col"} = "$Bom[$_]";
                      }


scheint mir unnötig kompliziert, tut

Code: (dl )
$arrayVar->{$z . ',' . ($_+1)} = "$Bom[$_]" for 0 .. $spalten;


nicht das gleiche?

Abschließender Tipp: perldoc perlstyle\n\n

<!--EDIT|Crian|1090583676-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2004-07-23 11:20.