Schrift
[thread]7176[/thread]

LWP macht seinen Dreck nicht weg

Leser: 2


<< >> 9 Einträge, 1 Seite
betterworld
 2005-07-31 04:27
#56849 #56849
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
use Data::Dumper;
use LWP::Simple;
get('http://example.com');
print Dumper (\%Symbol::GEN0);

Wenn ich dieses Script ausfuehre, kommt so etwas heraus:
Code: (dl )
1
2
3
4
5
6
$VAR1 = {
'io_socket_type' => 1,
'io_socket_proto' => 6,
'io_socket_domain' => 2,
'io_socket_timeout' => 60
};

Das sieht doch irgendwie so aus, als ob die allseits beliebte LWP es versäumt, nach dem Gebrauch wieder aufzuräumen, oder was meint Ihr?

Wenn man mal in den Quelltext von Net::HTTP::Methods schaut, sieht man, dass dort die privaten Daten in dem Hash %{*$this} gespeichert werden. Die übliche Methode über %$this wurde wohl nicht gewählt, weil der Programmierer in $this lieber eine Glob- als eine Hash-Referenz speichern wollte. Imho sollte er, wenn er diesen Weg gehen moechte, in einer DESTROY-Subroutine den ganzen Kram wieder wegmachen.

Sehe ich das richtig, oder bin ich nur nicht in der Lage, LWP::Simple richtig zu bedienen?\n\n

<!--EDIT|betterworld|1122769718-->
esskar
 2005-07-31 06:32
#56850 #56850
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
nö;
du liegst da wohl richtig;
das simple ist aber wohl so, wie es gemeint ist... aber wahrscheiblich (da es ja nicht direkt an LWP liegt), wird es sich wohl durch die komplette LWP Gruppe ziehen, oder?
betterworld
 2005-07-31 15:42
#56851 #56851
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=esskar,31.07.2005, 04:32]aber wahrscheiblich (da es ja nicht direkt an LWP liegt), wird es sich wohl durch die komplette LWP Gruppe ziehen, oder?[/quote]
Ja, bei Net::HTTP zum Beispiel kann man es auch ausprobieren:
Code: (dl )
1
2
3
4
use Net::HTTP;
use Data::Dumper;
{$my $x = Net::HTTP->new;}
print Dumper \%Symbol::GEN0;

Bei Programmen, die laengere Zeit laufen, duerften sich wohl eine ganze Menge alter Daten ansammeln.
esskar
 2005-07-31 16:05
#56852 #56852
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
was genau steht denn in %Symbol::GEN0; drin?
der rest vom letzten befehl? oder der komplette Dreck?
renee
 2005-07-31 16:08
#56853 #56853
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@betterworld: hast Du den Autor mal angeschrieben??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
betterworld
 2005-07-31 16:21
#56854 #56854
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
esskar: Alle "Felder" einer HTTP-Verbindung. Mit Felder meine ich, wie oben beschrieben, das Zeug, was man normalerweise in den Hash %$this hineinschreibt.

renee: Ja, noch keine Antwort. Ich habe die eMail-Adresse genommen, die man bei CPAN sehen kann.
esskar
 2005-07-31 20:41
#56855 #56855
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
use Net::HTTP;
use Data::Dumper;
{$my $x = Net::HTTP->new;}
print Dumper \%Symbol::GEN0;
{$my $x = Net::HTTP->new;}
print Dumper \%Symbol::GEN0;


es wird ja nicht mehr, das meinte ich!
betterworld
 2005-08-01 01:50
#56856 #56856
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Doch, es wird mehr:
Code: (dl )
1
2
3
4
5
6
7
8
use Net::HTTP;
use Data::Dumper;
{my $x = Net::HTTP->new;}
print Dumper \%Symbol::GEN0;
print Dumper \%Symbol::GEN1;
{my $x = Net::HTTP->new;}
print Dumper \%Symbol::GEN0;
print Dumper \%Symbol::GEN1;

Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
$VAR1 = {
'io_socket_timeout' => undef
};
$VAR1 = {};
$VAR1 = {
'io_socket_timeout' => undef
};
$VAR1 = {
'io_socket_timeout' => undef
};


Die Symbole (GEN0, etc) werden mit gensym aus dem Paket Symbol hergestellt, das ergibt inkrementierende Zahlen hinten, soweit ich es beobachtet habe.\n\n

<!--EDIT|betterworld|1122848105-->
esskar
 2005-08-01 02:13
#56857 #56857
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
okay; das war teil meiner frage; kannte das konstrukt nicht
<< >> 9 Einträge, 1 Seite



View all threads created 2005-07-31 04:27.