1 2 3 4 5 6 7
# old style: create a object and invoke certain method my $jdo = JDhash->new($date); print $jdo->julianday, "\n"; # modern style: tie a hash and print the property tie my %jd, 'JDhash', $date; print $jd{julianday}, "\n";
Quoteobjekte mit tie() zu machen ist also modern?
Quotehast du tie() grad erst entdeckt?
Quotevielleicht solltest du mal ein buch "Real Modern Perl" schreiben *SCNR*
1 2 3
tie my %jd, 'JDhash', $date; print $jd{julianday}, "\n"; print tied(%jd)->julianday, "\n";
2011-05-15T18:07:45 rostiWenn ich Deinen ersten Satz richtig verstanden habe:
QuoteCode (perl): (dl )print tied(%jd)->julianday, "\n";
Quoteund einer Vererbung steht nichts im Weg.
QuoteHast du mal probiert, einen tied hash aus einer Funktion zurückzugeben?
2011-05-15T19:26:34 rostiDer Vorteil, den ich im Wesentlichen sehe: Der Hash ist eine Variable, die in gequoteten Ausgaben direkt eingesetzt werden kann. Bei einem Methodenaufruf hingegen, muss erst eine zusätzliche Variable erzeugt werden.
1
2
3
4
5
6
7
8
Benchmark: timing 10000 iterations of method, tiehash...
method: 0 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU) @ 666666.67/s (n=10000)
(warning: too few iterations for a reliable count)
tiehash: 0 wallclock secs ( 0.06 usr + 0.00 sys = 0.06 CPU) @ 161290.32/s (n=10000)
(warning: too few iterations for a reliable count)
Rate tiehash method
tiehash 161290/s -- -76%
method 666667/s 313% --