NAME

Errno::AnyString - put arbitrary strings in $!

VERSION

Version 0.02

SYNOPSIS

use Errno qw/ENOENT/;
use Errno::AnyString;

$! = "--my hovercraft is full of eels";
my $s = "$!"; # $s now contains "my hovercraft is full of eels"

open my $fh, "<", "/no/such/file";
$s = "$!"; # $s now contains "no such file or directory"

$! = "--the bells the bells";
my $s = "$!"; # $s now contains "the bells the bells"

my $saved_errno = $!;
 
$! = ENOENT;
$s = "$!"; # $s now contains "no such file or directory"

$! = $saved_errno;
$s = "$!"; # $s now contains "the bells the bells"

DESCRIPTION

Errno::AnyString allows you to place an arbitrary error message in the special $! variable, without disrupting $!'s ability to pick up the result of the next system call that sets errno.

It is useful if you are writing code that reports errors by setting $!, and none of the standard system error messages fit.

If Errno::AnyString is loaded, $! behaves as normal unless a custom error string has been set by assigning a string starting with -- to $!. If a custom error string is set, it will be returned when $! is evaluated as a string, and 458513437 will be returned when $! is evaluated as a number, see ERRSTR_SET below.

EXPORTS

Nothing is exported by default. The following are available for export.

ERRSTR_SET

ERRSTR_SET is a numeric constant with the value 458513437. This is the value that will be obtained when $! is evaluated in a numeric context while a custom error string is set.

AUTHOR

Dave Taylor, <dave.taylor.cpan at gmail.com>

BUGS AND LIMITATIONS

Please report any bugs or feature requests to bug- at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Errno::AnyString. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Errno::AnyString

You can also look for information at:

SEE ALSO

Errno, perltie

COPYRIGHT & LICENSE

Copyright 2009 Dave Taylor, all rights reserved.

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