In October 2004, I wrote a Perl script to speak to the Smarthome Powerlinc model 1132B (serial port model), which issues X10 protocol commands over the house electrical wiring. The Perl script is known to work with perl-5.6.1 (but will probably work with other versions), and requires the module "Device::SerialPort" (version 0.12 is known to work, others will probably work too). I am running all this from an i686-based PC running NetBSD 1.6 (a free Unix), but it will probably work on any Unix, including Linux.
There's no separate documentation, but the script is generously commented.
2004 (c) Anne Bennett <anne.powerlinc@porcupine.ca>