Recently
mdupont and I were discussing prepositional logic (n-triples in perl) and more to the point writing perl code that would accept (meaning parse as valid perl) statements that look like
The Foo is Happy
or similar type stuff.
So I whipped together some code that would accept a statement like the {foo} is "happy". Heres what I did
use Data::Dumper;
package rule;
sub name {my $self=shift; $self->[0]=shift if @_;
+ $self->[0] };
sub value {my $self=shift; $self->[1]=shift if @_;
+ $self->[1] };
package the; use overload '""'=>sub{Data::Dumper::Dumper shift}
+;
package main;
sub the(&$) {
my ($item,$rule)=@_;
return bless {item=>&$item,rules=>{$rule->name=>$rule->value}}
+,"the"
unless UNIVERSAL::isa($item,"the");
$item->{rules}->{$rule->name}=$rule->value;
return &$item
}
sub is($) {
return bless [is=>shift],'rule';
}
print the {foo} is 'happy' or die die die;
Yes, I didnt use strictures or warnings. And I did format it funny deliberately (rule the main!)
Anyway, just thought that some of you might find this interesting and also I was curious what ideas other monks might come up with.
Yves / DeMerphq
---
Writing a good benchmark isnt as easy as it might look.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.