In gluenotes.pod, I asked for an example of how this canonical AppleScript example might be rendered in Perl: the first row in which the First Name column equals ¬ "John" and the Last Name column equals "Chapman" ¬ in the table "MyAddresses" of the database "SurfDB" Well, this is what I have come up with: @row = $s->get($s->obj( row => 1, row => whose(AND => [column => 'First Name', equals => 'John'], [column => 'Last Name', equals => 'Chapman']), table => 'MyAddresses', database => 'SurfDB')); I have this working now: @row = $f->get($f->obj( record => 1, record => whose(AND => [cell => 'Paid To', equals => 'The Deli'], [cell => 'Receipt For', contains => 'Sonia Long']), database => 'Cash Receipts')); Basically, the tests work like this: comparison record: (PROPERTY, OPERATOR, VALUE), or (CLASS => VALUE, OPERATOR, VALUE) PROPERTY and CLASS => VALUE work like prop() and obj(). The PROPERTY form is the same as C<property => VALUE>. OPERATOR is contains, equals, begins_with, ends_with, l_t, l_e, g_t, or g_e VALUE is the value to compare to logical record: (OPERATOR, LIST) OPERATOR is AND, OR, or NOT LIST is any number of other logical records or comparison records So you can do: $f->get( $f->obj(name => windows => whose( AND => [name => contains => 'e'], [name => ends_with => 's'], [NOT => [popup => equals => glueTrue]] ))); Does this sound good? Sound bad? Any other thoughts of any kind? (Feedback is good.) -- Chris Nandor mailto:pudge@pobox.com http://pudge.net/ %PGPKey = ('B76E72AD', [1024, '0824090B CE73CA10 1FF77F13 8180B6B6']) ==== Want to unsubscribe from this list? ==== Send mail with body "unsubscribe" to macperl-modules-request@macperl.org