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

hash automatischfüllen

Leser: 2


<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
Gast Gast
 2006-08-09 13:27
#68775 #68775
Hallo,

ich möchte gerne ein Hash in einer Schleife füllen lassen. So wie ich es bisher habe steht immer nur der letzte key und wert drinne obwohl es 6 sein müßten.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
foreach my $port_address_table (@port_address_table) {
foreach my $mac_address (@mac_address_result) {
if ($mac_address eq $port_address_table){
if ($mac_address =~/[a-fA-F1-9]$/){
open(DATEI,">>d:/mac/mac_tabel.txt");
print DATEI "$mac_address\n";
close DATEI;
push (@mac_tabel_result, $mac_address);
%mac_ip=(
$mac_address => $ipaddress,
);

ein auszug aus dem Script.

Kann mir einer sagen warum man sich nicht anmelden kann? Wenn man den Link öffnet der Bestätigungsmail kommt ein Fehler.\n\n

<!--EDIT|renee|1155116421-->
renee
 2006-08-09 13:41
#68776 #68776
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein Problem ist, dass Du den Hash immer wieder neu anlegst. So sollte es funktionieren:
Code: (dl )
1
2
3
4
5
6
7
8
9
foreach my $port_address_table (@port_address_table) {
foreach my $mac_address (@mac_address_result) {
if ($mac_address eq $port_address_table){
if ($mac_address =~/[a-fA-F1-9]$/){
open(DATEI,">>d:/mac/mac_tabel.txt");
print DATEI "$mac_address\n";
close DATEI;
push (@mac_tabel_result, $mac_address);
$mac_ip{$mac_address} = $ipaddress ;


Bzgl. Anmeldung: Ich hoffe, dass ein Admin sich bald darum kümmern kann.
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/
hucks
 2006-08-10 01:49
#68777 #68777
User since
2006-08-10
16 Artikel
BenutzerIn
[default_avatar]
wunderbar danke, man solte sich doch nochmal mit einigen Grundlagen befassen
hucks
 2006-08-16 14:31
#68778 #68778
User since
2006-08-10
16 Artikel
BenutzerIn
[default_avatar]
habe das nächste Problem, wie bekomme ich es hin das mein Hash welches ist in einer foreachschleife fülle genauso aussieht wie dieses Beispiel Hash

my $hash ={

'wert1' => ['wertx', 'werty']

};



das ist mein bisheriger versuch.

#in der foreach schleife

$wert = $wert."$mac_ip{$mac_address_2},";



#nach der schleife

$wert{$ipaddress} = $wert;
renee
 2006-08-16 14:46
#68779 #68779
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In der Schleife statt:
Code: (dl )
$wert = $wert."$mac_ip{$mac_address_2},"; 


das hier:
Code: (dl )
push @{$wert{$ipaddress}},$mac_ip{$mac_address_2};


Die Zuweisung nach der Schleife musst Du komplett weglassen...
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/
renee
 2006-08-16 14:46
#68780 #68780
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lesenswert:
perlreftut
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/
hucks
 2006-08-16 15:01
#68781 #68781
User since
2006-08-10
16 Artikel
BenutzerIn
[default_avatar]
habe in einem Beitrag hier im Forum folgendes gefunden um mit graphViz graphen zu zeichnen. In dem Beispiel wird ein Hash verwendet und ich möchte ein Hash erstellen was ich so verwenden kann.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use strict;
use warnings;

use GraphViz;

my $g = GraphViz->new();

my $switches = {
   'switch0' => ['switch1', 'switch2', 'switch3'],
   'switch1' => ['switch4'],
};

for my $k (keys %$switches) {
   $g->add_edge($k => $_) for @{$switches->{$k}};
}

print $g->as_text;
\n\n

<!--EDIT|hucks|1155726502-->
renee
 2006-08-16 15:06
#68782 #68782
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das nächste mal bitte code-Tags verwenden!

Hast Du denn meinen Code schon ausprobiert?\n\n

<!--EDIT|renee|1155726464-->
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/
hucks
 2006-08-16 15:14
#68783 #68783
User since
2006-08-10
16 Artikel
BenutzerIn
[default_avatar]
der hash wird angelegt und wenn ich mir mit print %wert das ganze ansehe sehe ich den wert und dahinter ein array.

ich habe dann auch die hashes hier

Code (perl): (dl )
1
2
3
for my $k (keys %$switches) {
   $g->add_edge($k => $_) for @{$switches->{$k}};
}


gegen %wert getauscht, aber ich bekomme nur ein leeres png

Code (perl): (dl )
1
2
3
for my $k (keys %$wert) {
   $g->add_edge($k => $_) for @{$wert->{$k}};
}


wenn ich das hash sesbst fülle , so wie in dem beispiel dann klappt es.

PS:die perl tags sind cool
renee
 2006-08-16 16:52
#68784 #68784
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach mal ein
Code: (dl )
1
2
3
use Data::Dumper;

print Dumper(\%wert);

und poste die Ausgabe hier...
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/
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2006-08-09 13:27.