NAME

Chj::xopen

SYNOPSIS

 use Chj::xopen;
 {
     my $in= xopen_read "foo.txt";
     my $out= glob_to_fh(*STDOUT,"utf-8");
     local $_;
     while (<$in>) { # default operation. (overload not possible :/)
	 $out->xprint($_); # print, throwing an exception on error
     }
     $out->xclose; # close explicitely, throwing an exception on error
 }
   # $in and $out are closed automatically in any case
   # (issuing a warning on error)

DESCRIPTION

Constructors around Chj::IO::File.

FUNCTIONS

xopen ( EXPR | MODE,LIST )

Open the given file like the perl builtin "open" or croak on errors. Returns an anonymous symbol blessed into Chj::xopen::file, which can be used both as object or filehandle (more correctly: anonymous glob) (? always? Perl is a bit complicated when handling filehandles in indirect object notation).

(BTW, note that perl won't give an error if you open a directory instead of a file for reading. The returned filehandle will give empty results if either used with read or readdir. That's true for perl 5.005x - 5.6.1 on linux.)

xopen_read EXPR
xopen_write EXPR
xopen_append EXPR
xopen_update EXPR

Those *optionally exported* functions check the one given input parameter for <>+ chars at the beginning, and either croak if they don't match the purpose of the function, or prepend the right chars if missing.

BUGS

Stuff like >&1 not yet really supported by the above xopen_* functions.

SEE ALSO

Chj::IO::File, Chj::xsysopen, Chj::xopendir