Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Devel::Dwarn(3)	      User Contributed Perl Documentation      Devel::Dwarn(3)

NAME
       Devel::Dwarn - Combine warns and	Data::Dumper::Concise

SYNOPSIS
	 use Devel::Dwarn;

	 return	Dwarn some_call(...)

       is equivalent to:

	 use Data::Dumper::Concise;

	 if (wantarray)	{
	    my @return = some_call(...);
	    warn Dumper(@return);
	    return @return;
	 } else	{
	    my $return = some_call(...);
	    warn Dumper($return);
	    return $return;
	 }

       but shorter. If you need	to force scalar	context	on the value,

	 use Devel::Dwarn;

	 return	DwarnS some_call(...)

       is equivalent to:

	 use Data::Dumper::Concise;

	 my $return = some_call(...);
	 warn Dumper($return);
	 return	$return;

       If you need to force list context on the	value,

	 use Devel::Dwarn;

	 return	DwarnL some_call(...)

       is equivalent to:

	 use Data::Dumper::Concise;

	 my @return = some_call(...);
	 warn Dumper(@return);
	 return	@return;

       If you want to label your output, try DwarnN

	 use Devel::Dwarn;

	 return	DwarnN $foo

       is equivalent to:

	 use Data::Dumper::Concise;

	 my @return = some_call(...);
	 warn '$foo => ' . Dumper(@return);
	 return	@return;

       If you want to output a reference returned by a method easily, try
       $Dwarn

	$foo->bar->{baz}->$Dwarn

       is equivalent to:

	 my $return = $foo->bar->{baz};
	 warn Dumper($return);
	 return	$return;

       If you want to immediately die after outputting the data	structure,
       every Dwarn subroutine has a paired Ddie	version, so just replace the
       warn with die.  For example:

	DdieL 'foo', { bar => 'baz' };

TIPS AND TRICKS
   global usage
       Instead of always just doing:

	 use Devel::Dwarn;

	 Dwarn ...

       We tend to do:

	 perl -MDevel::Dwarn foo.pl

       (and then in the	perl code:)

	 ::Dwarn ...

       That way, if you	leave them in and run without the "use Devel::Dwarn"
       the program will	fail to	compile	and you	are less likely	to check it in
       by accident.  Furthmore it allows that much less	friction to add	debug
       messages.

   method chaining
       One trick which is useful when doing method chaining is the following:

	 my $foo = Bar->new;
	 $foo->bar->baz->Devel::Dwarn::DwarnS->biff;

       which is	the same as:

	 my $foo = Bar->new;
	 (DwarnS $foo->bar->baz)->biff;

SEE ALSO
       This module is really just a shortcut for Data::Dumper::Concise::Sugar,
       check it	out for	more complete documentation.

perl v5.32.0			  2017-05-12		       Devel::Dwarn(3)

NAME | SYNOPSIS | TIPS AND TRICKS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Devel::Dwarn&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help