use B (); use B::Utils (); print "function() == " . sub_simplistic_complexity( \ &function ); print "overall: " . program_simplistic_complexity(); sub program_simplistic_complexity { my $simplistic_complexity = 0; for my $op ( B::Utils::all_roots() ) { $simplistic_complexity += op_simplistic_complexity( $op ) } return $simplistic_complexity; } sub sub_simplistic_complexity { op_simplistic_complexity( B::svref_2object( shift() )->ROOT ); } sub op_simplistic_complexity { my $op = shift; my $simplistic_complexity = 0; B::Utils::walkoptree_filtered( $op, sub { shift() -> can( 'other' ) }, sub { ++ $simplistic_complexity } ); return $simplistic_complexity; }