I/O


readLines: Read a file into a list of lines and close it
  [h]: file handle or name [io.input ()]
returns
  l: list of lines


writeLine: Write values adding a newline after each
  [h]: file handle [io.output ()]
  ...: values to write (as for write)


splitdir: split a directory path into components
Empty components are retained: the root directory becomes {"", ""}.
The same as Perl's File::Spec::splitdir
  path: path
returns
  @param: path1, ..., pathn: path components


catfile: concatenate directories into a path
The same as Perl's File::Spec::catfile
  @param: path1, ..., pathn: path components
returns
  path: path


catdir: concatenate directories into a path
The same as Perl's File::Spec::catdir
  @param: path1, ..., pathn: path components
returns
  path: path


shell: Perform a shell command and return its output
  c: command
returns
  o: output, or nil if error


processFiles: Process files specified on the command-line
If no files given, process io.stdin; in list of files, "-" means
io.stdin
  f: function to process files with
    name: the name of the file being read
    i: the number of the argument