IO::Automatic - automatically choose a suitable IO::* module


  use IO::Automatic;

  # scalar
  my $scalar;
  my $io = IO::Automatic->new( \$scalar );
  print $io "Hello World\n";


IO::Automatic provides a simple factory for creating new output handles.

Several types of automatic conversion are supplied. If no conversion can be done, we return false. Only the first argument is examined to determine, but all the arguments will be passed through so you can also supply file mode specifications.

Scalar references

Scalar references are translated into IO::Scalar objects.

Glob references

Globs are returned untouched as it is assumed they will already be suitable for use as IO handles.

Plain scalar

A plain scalar is assumed to be a filename and so is transformed into an IO::Zlib or IO::File object as appropriate.


Richard Clamp <>


Copyright (C) 2003, 2005 Richard Clamp. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


IO::File, IO::Scalar, IO::Zlib