![]() |
|< 1 ... 5 6 7 8 9 10 11 ... 15 >| | ![]() |
150 Einträge, 15 Seiten |
Quote"Can't locate object method "Neu" via packagge baum...etc.
QuoteAnscheinend gibt es keine methode Neu in deinem baum.pm.
Wobei ich das auch Baum.pm nennen würde.
1
2
3
4
5
6
7
8
9
sub Neu {
my $class = shift;
my $self = {};
bless( $self, $class );
my @liste = @_;
$self->{'ref_wurzel'} = newtree (\@liste);
return $self;
}
QuoteDeine Neu Methode sollte doch eigentlich ein Object zurücklieferen, keinen Array.
Und hinzufuegen wird wohl auch keine Klassenmethode sein, oder?
Genauso wenig wie ausgabe.
Bei allen 3 Methoden aufrufen hast du übrigens eine lexikalische Variable - @erstellebaum - in dem scope deiner Subroutine erstellt, welche den Rückgabewert bekommt und direkt danach vernichtet wird. Dass wolltest du bestimmt nicht.
Quotesub new {
my $Objekt = shift;
my $Referenz = {};
bless($Referenz,$Objekt);
return($Referenz);
}
1
2
3
4
5
6
7
8
9
sub Neu {
my $class = shift;
my $self = {};
bless( $self, $class );
my @liste = @_;
$self->{'ref_wurzel'} = newtree (\@liste);
return $self;
}
Quotemy $html = HTMLprint -> new();
1
2
3
4
5
6
7
8
sub BaumNeu {
for(0..9){
.... }
print "Sie haben folgende Zahlen eingegeben: (@liste1) \n";
$ebaum =baum->Neu(@liste1);
}
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
use strict;
use warnings;
sub knot { return ( { 'zahl' => shift,
'linksweg' => undef,
'rechtsweg' => undef } );
}
sub newtree {
######################
# Erstellen des Trees
my $ref_liste1 = shift;
my $zahl = undef;
my $ref_wurzel = undef;
for my $zzahl (@$ref_liste1){
my $refvalue = $ref_wurzel;
if ($zahl)
{ while (1) {
############################
#Beginn des Vergleichs
if($zzahl < $$refvalue{'zahl'}) {
if(defined($$refvalue{'linksweg'}))
{
$refvalue = $$refvalue{'linksweg'};
}
else {
$$refvalue{'linksweg'} = knot($zzahl);
$zahl = $ref_wurzel;
last; #Ende
}
}
#######
#wenns Links nicht mehr weiter geht, geh rechts weiter
else { if ($zzahl > $$$refvalue {'zahl'}) {
if(defined($$refvalue{'rechtsweg'}))
{$refvalue = $$refvalue{'rechtsweg'};
}
else {
$$refvalue{'rechtsweg'} = knot($zzahl);
last;
}
}
}
}
}
return($ref_wurzel);
}
########
#Hauptprogramm
########
###################
#Ausgabe des Trees
####
sub ausgabe {
my $self = shift;
my $refvalue = shift;
if(defined($self->{'ref_wurzel'}->{'linksweg'})) {
ausgabe($$refvalue{'linksweg'})
}
print "$self->{'ref_wurzel'}->{'zahl'}\n";
if(defined($self->{'ref_wurzel'}->{'rechtsweg'})) {
ausgabe($$refvalue{'rechtsweg'})
}
}
ausgabe($ref_wurzel);
sub Neu {
my $class = shift;
my $self = {};
bless( $self, $class );
my @liste = @_;
$self->{'ref_wurzel'} = newtree (\@liste);
return $self;
}
###############
#Hinzufügen weiterer Äste
###############
sub hinzufuegen {
my $self = shift;
my @newList = @_;
if (defined($self->{ref_wurzel})){
my $list = $self->{ref_liste1};
foreach my $zzahl (@newList)
{ push(@$list, $zzahl); };
$self->{ref_wurzel} = newtree ($list);
}
}
}
1;
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
use baum;
use strict;
my @liste1 = ();
my @liste2 = (4, 28, 9, 100, 12, 84, 10, 11);
my @HinzufuegenListe = ();
my @NeuListe = ();
my $ebaum = undef;
############################
#Eingabe der ersten 10 Zahlen / Liste 1
############################
sub BaumNeu {
for(0..9){
print "Bitte geben Sie eine Zahlen ein: ";
my $eingabe = <STDIN>;
if ( $eingabe =~ /^\D*$/)
{
print "Ungültige Eingabe, bitte geben sie nur Zahlen ein \n";
chomp($eingabe);
push @liste1,$eingabe;
}}
print "Sie haben folgende Zahlen eingegeben: (@liste1) \n";
$ebaum =baum->Neu(@liste1);
}
sub Hinzufuegen {
{my $zzahl = @_; }
$ebaum =baum->hinzufuegen(my @NeueListe);
}
sub Ausgabe {
$ebaum =baum->ausgabe(@HinzufuegenListe);}
BaumNeu;
Hinzufuegen;
Ausgabe;
1
2
3
4
5
6
7
if ( $eingabe =~ /^\D*$/)
{
print "Ungültige Eingabe, bitte geben sie nur Zahlen ein \n";
chomp($eingabe);
push @liste1,$eingabe;
}
1
2
3
4
5
6
7
8
9
if ( $eingabe =~ /^\D*$/)
{
print "Ungültige Eingabe, bitte geben sie nur Zahlen ein \n";
redo;
}
else{
chomp($eingabe);
push @liste1,$eingabe;
}
{my $zzahl = @_; }
$ebaum =baum->hinzufuegen(...)
$ebaum->hinzufuegen(...)
$ebaum =baum->ausgabe(...)
$ebaum->ausgabe(...)
![]() |
|< 1 ... 5 6 7 8 9 10 11 ... 15 >| | ![]() |
150 Einträge, 15 Seiten |