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; }
1
2
3
4
5
sub parse_markets {
my $self = shift;
#parsing hier so
$self->{'markets'} = $parsing_ergebnis;
}
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;
}
2014-04-04T16:11:09 styx-ccHier wuerde ich $self->{'markets'} in einem Setter setzen
der anders heißt als die Eigenschaft, das gefällt mir nicht.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
sub markets { my $self = shift; $self->_fetch_markets(); $self->_parse_markets(); return $self->{markets}; } sub _fetch_markets { my $self = shift; return if $self->{markets_raw}; # code hier, um $self->{markets_raw} zu befüllen ... } sub _parse_markets { my $self = shift; return if $self->{markets}; $self->{markets} = decode_json $self->{markets_raw}; }
1 2 3 4
my $sca = Scaliger->new(); # instance 4 today $sca->wochentag; # Samstag $sca->wochentag( date => '4.10.1582'); # Donnerstag $sca->wochentag; # Samstag
1 2 3 4 5
$sca->wochentag; # Samstag $sca->add(1); $sca->wochentag; # Sonntag $sca++; # use overload "++" $sca->wochentag; # Montag
2014-05-10T21:54:15 MuffiRichtig. Nur in dem Fall ist das Objekt völlig überflüssig und schlimmer noch: Es überschreibt sogar noch alles, was das Objekt ausmacht.
Scaliger::wochentag('4.10.1582')
2014-05-11T08:33:56 MuffiDie Funktin würd ich einfach so schreiben.
Code (perl): (dl )Scaliger::wochentag('4.10.1582')
Es bringt keinen Mehrwert hier OO zu verwenden.
Und mit dem "Es überschreibt sogar noch alles" meinte ich, dass das was das Objekt ausmacht ja wohl nur ein intern gespeichertes Datum ist und das
wird beim Methodenaufruf auch noch umgesetzt.
Ich find sowas nur verwirrend. Man fragt sich beim Aufruf, für was da ein Objekt gebaut werden muss, wenn eh nichts davon gebraucht wird.
my $vname = $user{vname};
my $ort = $user{ort};
1 2
$userobject->validate(userid => param('userid') ) or die $@; # netter Versuch
1 2 3 4 5
my $sca = Scaliger->new( date => '1.5.2014') or die $@; # wd: Wochentag numerisch, jd: Scaliger-Tag (julianischer Tag) my $jd_mother = 14 - $sca->wd + $sca->jd; # der 2. Sonntag im Mai # passt ;) say $sca->gregdate( jd => $jd_mother ), " ", $sca->wochentag( jd => $jd_mother );