When you define a sub, you can tell the compiler what args it expects. In my example, the ($$) means that it must be passed two scalar values. Rather than me going into more detail myself, checkout
this tutorial. Another view is given by Tom Christiansen,
here. Also, don't forget the Camel book. --Dave.