Schrift
[thread]755[/thread]

hash einer funktion übergeben



<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
mr-sansibar
 2006-06-16 14:08
#8040 #8040
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
Hallo!
noch eine frage ?
möchte eine hash-referenz einer funktion übergeben, das hash füllen und in datei ausgeben.
bsp:
Quote
$string_result=work_with_file($_, $fh, \%hash);

sub work_with_file {
my ( $filename, $fh, %hash) = @_;
....
...
$hash{$dt} = $lines if $errorFound;
return $string_result = "!!!!!!!"
}
lichtkind
 2006-06-16 14:54
#8041 #8041
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
den hash kann man als refernz übergeben, wie es bei dir ja dasteht. ich bevorzuge aber in der sub selber nur referenz zu shiften und dann statt $hash{$dt} $hash->{$dt} zu schreibe

dann noch anderer tip versuch anzahl der argumente zu begrenzen.\n\n

<!--EDIT|lichtkind|1150456441-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
pq
 2006-06-16 15:08
#8042 #8042
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
funktion(\%hash);
sub funktion {
 my ($hash) = @_;
 print $hash->{key};
}
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
mr-sansibar
 2006-06-16 15:11
#8043 #8043
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
tut mir leid versteh nicht dich ganz.
was meinst du mit shiften
lichtkind
 2006-06-16 15:17
#8044 #8044
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
shiften:
Code: (dl )
1
2
3
4
5
sub routine{
my %was = % {shift;};
}

routine(\%hash;)


sieht zwar nicht schön aus aber dafpr hast du dann direkt wieder einen hash keine hashref (manchmal braucht man das)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Dubu
 2006-06-16 15:18
#8045 #8045
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Dein Fehler: Du übergibst eine Hash-Referenz, erwartest in der Sub aber einen Hash.
mr-sansibar
 2006-06-16 15:29
#8046 #8046
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
tut mir leid, es fällt mir ein wenig schwer die ganze sache.

vielleicht so ????

Code: (dl )
1
2
3
4
5
6
7
8
sub work_with_file {
my ( $filename, $fh, \%hash) = @_;
.....
.....
\$hash->{$dt} = $lines if $errorFound;
}

work_with_file($_, $fh, \%hash);
\n\n

<!--EDIT|mr-sansibar|1150457605-->
pq
 2006-06-16 15:40
#8047 #8047
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
hast du mein posting überlesen?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
mr-sansibar
 2006-06-16 15:44
#8048 #8048
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
sorry, habe es überlesen !!!
mr-sansibar
 2006-06-16 15:52
#8049 #8049
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
bei der sortierung des hash habe ich noch problem.
nach der funktion soll das hash sortiert werden bsp:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub work_with_file {
my ( $filename, $fh, $hash) = @_;
.....
.....
$hash->{$dt} = $lines if $errorFound;
}

work_with_file($_, $fh, \%hash);

foreach my $key (sort keys %hash) {
print $fh "$key:\n$hash{$key}\n";
}
\n\n

<!--EDIT|mr-sansibar|1150458779-->
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2006-06-16 14:08.