in reply to First post, file handle question

open (SKEL, "cat " . join (" ", @ARGV) . " |") || die "Could not open $ARGV[0].\n$usage";

Just a picky parenthetic note: If the special variable  $" retains its default value of a single space (see perlvar), the expression
    "cat " . join (" ", @ARGV) . " |"
is exactly equivalent to the much shorter and clearer expression
    "cat @ARGV |"
which, for some reason, the original author did not want (or know how) to use.