Thread Warnung bei verschachtelten Subroutinen
(3 answers)
Opened by false_friend at 2012-11-23 12:09
Liebe Perl-Community,
folgender Code erzeugt eine Warnung, die ich nicht beheben kann: Code (perl): (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 #!/usr/bin/perl use strict; use warnings; package my_package; sub new { my $class = shift; my $obj = { HASH => { "key1" => 35, "key2" => 28, "key3" => 74, }, }; return bless $obj, $class; } sub outer_subroutine { my $obj = shift; sub sort_by_value { $obj->{"HASH"}{$b} <=> $obj->{"HASH"}{$a}; } foreach my $key ( sort sort_by_value(keys $obj->{"HASH"} ) ) { print $key, "\n"; } } package main; my $object = my_package->new; $object->outer_subroutine; Die Warnung lautet Variable "$obj" will not stay shared at sort.pl line 25. Perl schlägt mir vor, sort_by_value anonym zu machen. Das habe ich probiert, aber dann funktioniert die Sortierung nicht mehr, denn dann bemängelt er Name "my_package::a" used only once: possible typo at sort2.pl line 25. und Name "my_package::b" used only once: possible typo at sort2.pl line 25. Könnt ihr mir weiter helfen? |