Le mardi 29 mars 2005 à 19:05, David Landgren écrivait:
> >    $blah->add_filter(
> >        bap   => 'eq "zlopp"',
> >        clank => '!~ /clunk_eth/',
> 
> A hash is unordered. Um hang on, or is this a list of pairs or a hash?

It is a list of pairs. For the moment, the right part is pushed on an
array reference stored in a hash indexed by the left part. So yes, I
can do $blah->add_filter( bap => 'ne "zlopp"', bap => 'ne "klonk"' )

> >        chomp;
> >        my @data = split qr{:};
> >        if(    ( $data[1] !~ /clunk_eth/ )
> >            && ( $data[0] eq "zlopp" ) )
> 
> This is ordered. But in any case, it's not in the same order as above.

Sure, it's a hash.

> I would like to be able to specify order in which the checks are run, so 
> as to be able to evaluate the check that fails 99% of the time first.

Good point.

> Also, I'm not sure what to suggest, but...
> 
>     bap   => 'eq "zlopp"',
> 
> ...feels icky. I'd rather something that would spit out errors at 
> compile time, not at eval time. But I can't think of anything 
> approaching that level of tersity. At the very least:
> 
>       bap   => { 'eq'      => 'zlopp'       }
>       clunk => { '~!'      => qr/^foom\d+$/ }
>       sput  => { 'between' => [10, 100]     }
> 
> Hmm, how do I add a new conditional widget, like 'between' above? e.g. I 
> want to extract all HTTP transactions whose lengths are prime fibonacci 
> numbers.

Moving away from the inner Perl code is a very good option, which Yves
mentionned as well. My first version simply puts the strings into $code,
which has a lot of red flashing lights all around.

Does your asking this kind of questions mean the module is interesting
enough to be posted on CPAN?

-- 
 Philippe "BooK" Bruhat

 When you deal in weapons, there are no winners... only losers.
                                    (Moral from Groo The Wanderer #31 (Epic))

Reply via email to