#!/usr/bin/perl use strict; use warnings; use Carp; use File::Find; die "Usage: $0 [croak|confess] [level]\n" unless @ARGV == 2; my ($which, $carplevel) = @ARGV; sub err { $Carp::CarpLevel = $carplevel; if ($which eq 'croak') { croak "You did something bad!"; #line 12 } else { confess "You did something bad!"; #line 14 } } sub wanted { err(); #line 19 } find(\&wanted, '.'); #line 22 __END__ #### $ ./ff_carp.pl croak 0 You did something bad! at /opt2/Perl5_8_4/lib/perl5/5.8.4/File/Find.pm line 810 #### $ ./ff_carp.pl croak 1 You did something bad! at ./ff_carp.pl line 22 #### $ ./ff_carp.pl confess 0 You did something bad! at ./ff_carp.pl line 14 main::err() called at ./ff_carp.pl line 19 main::wanted() called at /opt2/Perl5_8_4/lib/perl5/5.8.4/File/ Find.pm line 810 File::Find::_find_dir('HASH(0x13e82c)', ., 2) called at /opt2/ Perl5_8_4/lib/perl5/5.8.4/File/Find.pm line 690 File::Find::_find_opt('HASH(0x13e82c)', .) called at /opt2/ Perl5_8_4/lib/perl5/5.8.4/File/Find.pm line 1193 File::Find::find('CODE(0x1b66d0)', .) called at ./ff_carp.pl line 22 #### $ ./ff_carp.pl confess 1 You did something bad! at ./ff_carp.pl line 19 main::wanted() called at /opt2/Perl5_8_4/lib/perl5/5.8.4/File/ Find.pm line 810 File::Find::_find_dir('HASH(0x13e82c)', ., 2) called at /opt2/ Perl5_8_4/lib/perl5/5.8.4/File/Find.pm line 690 File::Find::_find_opt('HASH(0x13e82c)', .) called at /opt2/ Perl5_8_4/lib/perl5/5.8.4/File/Find.pm line 1193 File::Find::find('CODE(0x1b66d0)', .) called at ./ff_carp.pl line 22 #### #!/usr/bin/perl use strict; use warnings; use Carp; use File::Find; die "Usage: $0 [croak|confess] [level]\n" unless @ARGV == 2; my ($which, $carplevel) = @ARGV; sub err { $Carp::CarpLevel = $carplevel; if ($which eq 'croak') { croak "You did something bad!"; #line 12 } else { confess "You did something bad!"; #line 14 } } sub wanted { err(); #line 19 } #### push our @CARP_NOT, 'File::Find'; #### find(\&wanted, '.'); #line 22 __END__