Thread Externe Funktionen einbinden (6 answers)
Opened by trojax at 2009-05-25 10:45

Linuxer
 2009-05-25 11:39
#121868 #121868
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Da renee bereits den Weg des Moduls gezeigt hat, hier noch ein paar Anmerkungen zu Deinem Schnipsel:

  • 'use strict;' und 'use warnings;' verwenden
  • Funktionsnamen würde ich klein schreiben, nicht GROSS
  • alle Informationen, die die Funktion nutzen soll, als Argument übergeben; nicht aus globalen Variablen nehmen!
  • open mit lexikalischer Variable als Handle: open my $readhandle, 'datei'...
  • open in der 3-Argument-Version nutzen: open my $handle, '<', 'datei'
  • $xyz ist überflüssig; split() kann auch $_ verarbeiten
  • Wenn Du mehr als einen Wert zurückliefern muss, liefer eine Liste zurück


Code (perl): (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
31
32
33
34
use strict;
use warnings;

my $i=0;
sub matrix {
  my ( $filepath ) = @_;

  # new array
  my @values;

  # open file for reading
  open my $fh, '<', $filepath or die "$filepath: open failed: $!\n";

  my $i = 0;
  while ( my $line = <$fh> ) {
    $i++;
    # skip commented lines
    next if $line =~ m{^#};

    # remove line breaks; obsolete because of following s/\s+//g
    # but good idea to do this (what happens if the s///g is gone?) ;o)
    chomp $line;

    # remove any white spaces (including line breaks)
    $line =~ s/\s+//g;

    push @values, [ split m{,}, $line ];
  }
  
  close $fh or die "$filepath: close failed: $!\n";

  # return number of read lines and reference to this array
  return $i, \@values;
}


Aufruf:
Code (perl): (dl )
my ( $count, $array_r ) = matrix( '/path/to/file' );
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Externe Funktionen einbinden