Thread Probleme mit eigenem Package: Daten gehen verloren... (6 answers)
Opened by Gast at 2006-05-08 21:51

Gast Gast
 2006-05-08 21:51
#65750 #65750
Hallo Perl-Gurus,

ich habe ein Problem. Ich muss Textdateien, die während eines Buildprozesses von einem Code-Analyse-Tool erzeugt werden, parsen und auswerten. Im Scriptverzeichns liegt eine Datei 'dirs' mit den Pfaden zu den verschiedenen Builds. Für jeden dieser Pfade wird ein Objekt erzeugt, das sich um das Parsen kümmert.

Der folgende Code ist abgespeckt, aber im Prinzip lauffähig.

Warum werden im folgenden Code beim 1. Dump die korrekten Dateinamen der Textdateien und im 2. Dump, nachdem das Parsen schon erledigt ist, nur noch 'undef' ausgegeben?

Danke schonmal...


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package main;
use strict;

use Data::Dumper;

open F, "<dirs" || die qq($!);
my @builds = <F>;
close F;

foreach my $dir (@builds)
{
  chomp $dir;
  my $build = MyPackage->new($dir);
 
  print Dumper($build);
  $build->scan_resultfiles();
  print Dumper($build);
}

package MyPackage;
use strict;
use File::Basename;
use File::Spec;
use Cwd;

sub new
{
my $proto  = shift;
my $class  = ref ($proto) || $proto;
my $ptr    = {};
bless ($ptr, $class);
$ptr->init(@_);
return $ptr;
}

sub init($$)
{
  my ($this, $path) = @_;
 
  $this->{root} = $path;

  opendir DIR, File::Spec->catdir($path, qw(lint\msg));
  @{$this->{errorfiles}->{lint}} = grep /\.txt$/, readdir DIR;
  closedir DIR;
}

sub scan_resultfiles($)
{
  my $this = shift;

  foreach (@{$this->{errorfiles}->{lint}})
  {
     $this->parse_file(File::Spec->catfile(File::Spec->catdir($this->{root}, qw(lint\msg)), $_));
  }
}

sub parse_file($$)
{
  my ($this, $errfile) = @_;
 
  open FILE, "<$errfile" || die qq($!);  
  while (<FILE>)
  {
     chomp;
     # ...
  }
  close FILE;  
}

1;


edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1147111721-->

View full thread Probleme mit eigenem Package: Daten gehen verloren...