Thread Schönes Perl - OOP, getter, setter (10 answers)
Opened by styx-cc at 2014-04-04 18:11

styx-cc
 2014-04-04 18:11
#174634 #174634
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Hi, wie notiere ich folgendes am "schönsten"?

Es werden Daten in JSON abgeholt und sollen anschließend geparsed werden
und in $self->{'markets'}; abgespeichert werden, was den Code unschön werden lässt, ist dass ich das Parsing der Übersicht wegen, in einer weiteren Funktion vornehmen möchte ( parse_markets() )

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
sub markets {
        my $self = shift;
        
        if (@_) {
                $page = $self->handle->get('https://www.example.com');
                
                if ($page->is_success) {
                        $self->{'markets_json'} = $page->content; #JSON
                } else {
                        croak "Can't get markets: ". $page->status_line();
                }
                
                $self->parse_markets();
        } else {
                return $self->{'markets'};
        }
}

sub parse_markets {
        my $self = shift;
        
}


Wie mache ich das jetzt am besten?

Hier wuerde ich $self->{'markets'} in einem Setter setzen
der anders heißt als die Eigenschaft, das gefällt mir nicht.
Code: (dl )
1
2
3
4
5
sub parse_markets {
my $self = shift;
#parsing hier so
$self->{'markets'} = $parsing_ergebnis;
}


Hier wuerde ich imo mit OOP brechen, das gefaellt mir auch nicht:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub markets {
$self = shift;
[...]
$self->{'markets'} = parse_markets(\$self->{'markets_json'});
[...]
}

sub parse_markets {
my $markets_json = shift;
#parsing hier
return \$parsing_ergebnis;
}



Gruß
Pörl.

View full thread Schönes Perl - OOP, getter, setter