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.
- stdin, stdout, stderr
-
The functions with these names call
glob_to_fh(*STD..., "utf-8")
by default. If given an argument, it is used as the encoding instead of "utf-8".
BUGS
Stuff like >&1 not yet really supported by the above xopen_* functions.
SEE ALSO
Chj::IO::File, Chj::xsysopen, Chj::xopendir
NOTE
This is alpha software! Read the status section in the package README or on the website.