#!/usr/bin/perl -w use strict; use B::Deparse; use B::Concise; print "Perl v",$],"\n"; sub print_calling_line { my $actual_line = $_[0]; my $caller_line = (caller)[2]; printf "Called from line %2d; caller() reports line %2d\n", $actual_line, $caller_line; } sub tst { print_calling_line( __LINE__, {A => 1, B => 2, C => 3} ); print_calling_line( __LINE__, do { A => 1, B => 2, C => 3 } ); } tst(); print "\n === B::Deparse -l:\n". B::Deparse->new("-l")->coderef2text(\&tst); print "\n === B::Concise:\n"; my $walker = B::Concise::compile('tst'); $walker->();