in reply to MisterHouse

However, it's not so nice that they use a lot of indirect objects in their sample code... From the website:

$fountain = new X10_Item 'B1'; set $fountain ON if time_now '6:00 PM'; $movement_sensor = new Serial_Item 'XA2', 'stair'; play(file => 'stairs_creek*.wav') if state_now $movement_sensor eq 'st +air';

It's probably meant to be more readable that way, but I don't agree it is. Sometimes, brackets can be a useful thing :).