[Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?
Robert Barta
rho at devc.at
Tue Apr 29 22:25:13 PDT 2008
On Wed, Apr 30, 2008 at 08:20:23AM +0200, Thomas Klausner wrote:
> > auf in-memory Objekte, relational DBs, XML structures, und - das
> > interessiert mich hier hauptsaechlich - auf Topic Map und RDF KBs
> > zugreifen kann. LINQ ist nun Teil von C# (das langsam Perl6 immer
> > aehnlicher wird, naja langsam).
>
> Naja, in Perl ist dieser Zugriffsmechanismus halt map, grep, each, etc,
> mit dem man auf in-memory Objekte, DBs, XML, ... zugreift.
D.h., ich koennte das 1) einmal sehr Perl-ish angehen und etwas an
Tie::Array
binden. Oder ...
> In deinem konkreten Fall:
>
> > my @students = ....;
> > my @cleverlies = from $s in @students
> > where $s->{marks} > 85
> > select $s->{matrikelnr};
>
> koenntest du schon eine sub from { } machen, die die Parameterliste
> durchgeht, andere "keywords" wie 'where' und 'select' identifziert,
.... 2) 'from' in the namespace laden, oder ....
> From: Stefan Weiss <spaceman at foo.at>
> Um deinen Sourcecode so umzuschreiben, dass nachher Perl rauskommt,
> schau dir mal die Source Filter in "perldoc perlfilter" an, oder das
> Modul Filter::Simple.
.... 3) ein Praeprozessor einschieben.
Klingt alles gangbar. Ich haette auch nicht notfalls vor
@collection = new LINQ::TM ('from ...');
zurueckgeschreckt.
<loud-thinking>
3) Bei preprocessors habe ich immer das Problem, dass sie nicht
leicht immer miteinander kombinierbar sind.
2) mit dem 'from' als Routine muss man analysieren, ob die Parameterliste
mit der Syntax, die ich erreichen will, halbwegs kompatibel ist. Bei
$s->{marks} > 85
hab ich schon das Problem, dass Perl das fuer mich auswerten will, bevor
'from' zum Zug kommt.
1) Tie::Array ist halt SEHR perl-ish. Not bad per se, aber nicht Sinn der
Uebung hier.
</loud-thinking>
\rho
More information about the Vienna-pm
mailing list