Class::ReturnValue man page on Alpinelinux

Man page or keyword search:  
man Server   18016 pages
apropos Keyword Search (all sections)
Output format
Alpinelinux logo
[printable version]

Class::ReturnValue(3) User Contributed Perl DocumentationClass::ReturnValue(3)

NAME
       Class::ReturnValue - A return-value object that lets you treat it as as
       a boolean, array or object

DESCRIPTION
       Class::ReturnValue is a "clever" return value object that can allow
       code calling your routine to expect:
	   a boolean value (did it fail) or  a list (what are the return
       values)

EXAMPLE
	   sub demo {
	       my $value = shift;
	       my $ret = Class::ReturnValue->new();
	       $ret->as_array('0', 'No results found');

	       unless($value) {
		   $ret->as_error(errno => '1',
				      message => "You didn't supply a parameter.",
				      do_backtrace => 1);
	       }

	       return($ret->return_value);
	   }

	   if (demo('foo')){
	       print "the routine succeeded with one parameter";
	   }
	   if (demo()) {
	       print "The routine succeeded with 0 paramters. shouldn't happen";
	   } else {
	       print "The routine failed with 0 parameters (as it should).";
	   }

	   my $return = demo();
	   if ($return) {
	       print "The routine succeeded with 0 paramters. shouldn't happen";
	   } else {
	       print "The routine failed with 0 parameters (as it should). ".
		     "Stack trace:\n".
	       $return->backtrace;
	   }

	   my @return3 = demo('foo');
	   print "The routine got ".join(',',@return3).
		 "when asking for demo's results as an array";

	   my $return2 = demo('foo');

	   unless ($return2) {
	       print "The routine failed with a parameter. shouldn't happen.".
		    "Stack trace:\n".
	       $return2->backtrace;
	   }

	   my @return2_array = @{$return2}; # TODO: does this work
	   my @return2_array2 = $return2->as_array;

METHODS
       new Instantiate a new Class::ReturnValue object

       as_array
	   Return the 'as_array' attribute of this object as an array.

       as_array [ARRAY]
	   If $self is called in an array context, returns the array specified
	   in ARRAY

       as_error HASH
	   Turns this return-value object into	an error return object.	 TAkes
	   three parameters:

	       message
	       do_backtrace
	       errno

	       'message' is a human readable error message explaining what's going on

	       'do_backtrace' is a boolean. If it's true, a carp-style backtrace will be
	       stored in $self->{'backtrace'}. It defaults to true

	       errno and message default to undef. errno _must_ be specified.
	       It's a numeric error number.  Any true integer value  will cause the
	       object to evaluate to false in a scalar context. At first, this may look a
	       bit counterintuitive, but it means that you can have error codes and still
	       allow simple use of your functions in a style like this:

		   if ($obj->do_something) {
		       print "Yay! it worked";
		   } else {
		       print "Sorry. there's been an error.";
		   }

		   as well as more complex use like this:

		   my $retval = $obj->do_something;

		   if ($retval) {
		       print "Yay. we did something\n";
		       my ($foo, $bar, $baz) = @{$retval};
		       my $human_readable_return = $retval;
		   } else {
		       if ($retval->errno == 20) {
			   die "Failed with error 20 (Not enough monkeys).";
		       } else {
			   die	$retval->backtrace; # Die and print out a backtrace
		       }
		   }

       errno
	   Returns the errno if there's been an error. Otherwise, return undef

       error_message
	   If there's been an error return the error message.

       backtrace
	   If there's been an error and we asked for a backtrace, return the
	   backtrace.  Otherwise, return undef.

       error_condition
	   If there's been an error, return undef. Otherwise return 1

AUTHOR
	   Jesse Vincent <jesse@bestpractical.com>

BUGS
	   This module has, as yet, not been used in production code. I thing
	   it should work, but have never benchmarked it. I have not yet used
	   it extensively, though I do plan to in the not-too-distant future.
	   If you have questions or comments,  please write me.

	   If you need to report a bug, please send mail to
	   <bug-class-returnvalue@rt.cpan.org> or report your error on the web
	   at http://rt.cpan.org/

COPYRIGHT
	   Copyright (c) 2002,2003,2005,2007 Jesse Vincent <jesse@bestpractical.com>
	   You may use, modify, fold, spindle or mutilate this module under
	   the same terms as perl itself.

SEE ALSO
	   Class::ReturnValue isn't an exception handler. If it doesn't
	   do what you want, you might want look at one of the exception handlers
	   below:

	   Error, Exception, Exceptions, Exceptions::Class

	   You might also want to look at Contextual::Return, another implementation
	   of the same concept as this module.

POD ERRORS
       Hey! The above document had some coding errors, which are explained
       below:

       Around line 97:
	   '=item' outside of any '=over'

       Around line 264:
	   =cut found outside a pod block.  Skipping to next block.

       Around line 296:
	   You forgot a '=back' before '=head1'

perl v5.18.2			  2007-08-20		 Class::ReturnValue(3)
[top]

List of man pages available for Alpinelinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net