# Introduction to UNIX Programming with MH

One of the great things about MH is that it's made up of individual UNIX programs, "building blocks," that you run from a shell prompt. Because MH isn't a monolithic "one program does everything" mail agent, it's easy to use MH from programs written for the shell, Perl, C, tcl/tk, and so on.

If you don't like the MH interface, you can write your own. You can make new programs that combine MH programs in your own way to do exactly what you need. xmh, MH-E, and exmh are complex examples of this. There are simpler examples in this chapter -- and in this book's online archive.

This chapter assumes that you've written programs in the language you choose (Bourne shell, Perl, etc.). If you need more information on UNIX programming, try one of the books in the Reference List.

The chapter is mostly reference material; it's not organized as a connected or complete tutorial. There are two main parts. The first part, before the Section Finding Program Name; Multiple Program Names, covers topics that are used in this book's examples and that should give you techniques for programming in general. The second part, from the Section Finding Program Name; Multiple Program Names through the end of the chapter, explains techniques for programming with MH.