use strict;
use warnings;
{
my $level = 0;
sub reset_list_debug { $level = 0 }
sub custom_list_debug (&@) {
my $code = shift;
print "==" x $level, $level ? "> " : '', join(q( ), map($code-
+>($_), @_)), "\n";
$level++;
return @_;
}
sub list_debug {
custom_list_debug { "$_" } @_;
}
}
my @letters =
list_debug map { lc $_ }
list_debug grep { /[AEIOU]/ }
list_debug map { uc $_ }
list_debug 'a'..'z';
reset_list_debug();
my @letters2 =
custom_list_debug { qq("$_") } map { lc $_ }
custom_list_debug { qq([$_]) } grep { /[AEIOU]/ }
custom_list_debug { qq('$_') } map { uc $_ }
custom_list_debug { qq( $_ ) } 'a'..'z';
reset_list_debug();
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'