[Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?

Marcel Grünauer gr at univie.ac.at
Wed Apr 30 08:10:03 PDT 2008


On Apr 30, 2008, at 4:26 PM, Roland Giersig wrote:

> und wie schaut das aus?
>
> @cleverlies = select {$_->{matrikelnr}} where {$_->{marks} > 85} from
> @students;

Die Reihenfolge von WHERE und FROM stimmt nicht, aber sonst schon ganz  
ok...

#!/usr/bin/env perl

use warnings;
use strict;

my @students = (
     { id => 1234, marks => 20 },
     { id => 4711, marks => 85 },
     { id => 3000, marks => 86 },
     { id => 9999, marks => 99 },
);

sub SELECT (&@) { my $code = shift; map  { $code->() } @_ }
sub WHERE  (&@) { my $code = shift; grep { $code->() } @_ }
sub FROM   (@)  { @_ }

sub id    () { $_->{id}    }
sub marks () { $_->{marks} }

my @cleverlies = SELECT { id } WHERE { marks > 85 } FROM @students;



More information about the Vienna-pm mailing list