#!perl use strict; use warnings; use feature qw/state say/; use Devel::Peek; my @array = ( "0", "0\n", 0, '0', '0'."\n" ); foreach my $zeroe( @array ){ state $za; say "\$zeroe $zeroe\__________"; # @$za = Dump $zeroe; state $fh_err; local *MYSTDERR = *STDERR; open STDERR, '>', 'tmp.err' or die $!; # dies to Term Dump $zeroe; Dump defined $zeroe; Dump length $zeroe; Dump 0+$zeroe; close STDERR; *STDERR = *MYSTDERR; what_is_it(); say "[][][][][][][][][][]\n"; } unlink 'tmp.err'; sub what_is_it{ # my $output = shift; # while(defined( my $next = shift @$output )){ # state $c; # print ++$c,": $next"; state $fh_err; open $fh_err, '<', 'tmp.err' or die $!; # .... while( defined ( my $nextline = <$fh_err> ) ){ # state $c; # print $c+=1," $nextline"; print $nextline; }; close $fh_err; unlink{ 'tmp.err' }; }