Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8579[/thread]

Instanzen löschen



<< >> 3 Einträge, 1 Seite
Reen
 2006-12-13 20:36
#72532 #72532
User since
2006-12-01
11 Artikel
BenutzerIn
[default_avatar]
Hallo!

Mal ne Frage....gibts ne Möglichkeit die von einer Subroutine angelegten Instanzen, die durch Rekursion entstanden sind auf einmal zu löschen. Da Prog wird quasi aus dem Prog wieder von neuem aufgerufen werden. Ne andere Möglichkeit wäre vielleicht, das Programm aus dem Prog wieder neu zu starten. Quasi mit perl xxx.pl


Gibts für ersteres ne Möglichkeit?

Danke
Reen
esskar
 2006-12-13 20:47
#72533 #72533
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
zeig mal ein code-beispiel!
Reen
 2006-12-13 22:35
#72534 #72534
User since
2006-12-01
11 Artikel
BenutzerIn
[default_avatar]
Also das ist immer noch das Prog, dass die Registry durchsuchen soll. Das funzt auch alles soweit. Das einzigste Prob ist halt, wenn ich jetzt einen Schlüssel gelöscht habe, soll zur Auswahl stehen, ob eine neue Suche starten soll oder weiter gesucht werden soll.
Im aktuellen Code, bricht er nach der Neueingabe ab, weil ich mir halt denke, dass die alten Instanzen daran schuld sind.
Beim Weitersuchen ist noch das Prob, dass er jetzt irgendwie nochma alle Schlüssel anzeigt, die zum Suchschema passen. Probiers einfach mal aus. Dann weist du was ich genau meine.

Danke
Reen

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
use Win32::TieRegistry;

&neu;

sub neu
{
print "Registryschluessel finden und loeschen!\n";
print "Suchbegriff: ";
$eingabe = <STDIN>;
&start ($eingabe);

sub start
{ $regroot = $Registry -> Open ("CConfig/",{Delimiter=>"/"});
$regpath= $regroot -> Path;

&func($regroot);

sub func
{ my $regkey = shift;
my ($key, $dir);

foreach $key (keys %$regkey)
{ chomp($key);
if ($key =~ /(\/)$/)
{ chomp($key);

if ($key =~ /^$eingabe?/ig)

{ $PathSubKey = $regkey -> Path;

print $PathSubKey, "[$key]", "\n";

print "Schluessel (l)oeschen, (w)eitersuchen? [l/w] ";

my $choice1 = <STDIN>;


print "\n";

if ($choice1 =~ /l/i)


{ $inhalt = $regkey -> Open ("$key");


print "[$key]", "\n";


foreach $inh (keys %$inhalt)


{ printf " Key: %15s Wert: %s\n", $inh, $inhalt->{$inh}; }


print "Folgende Schlüssel und Werte werden gelöscht! [j/n] ";


my $choice2 = <STDIN>;


if ($choice2 =~ /j/i)


{&nbsp
; my $del1 = delete $regkey -> {"$key"};



print "Suche (f)ortsetzen, (n)eue Suche, (b)eenden? ";



my $choice3 = <STDIN>;



if ($choice3 =~ /f/i)



{ &start;
}



if ($choice3 =~ /n/i)



{ &neu; &n
bsp; }



if ($chioce3 =~ /b/i)



{ exit;
}


}


}




}

else

{ $dir = $regkey -> Open ("$key"); # In neuen Schlüssel wechseln
$path = $dir -> Path;
&func($dir);
}

}
}
}
}
}
<< >> 3 Einträge, 1 Seite



View all threads created 2006-12-13 20:36.