package Node; sub new { my ($class, $value) = @_; my $self = { value => $value, left => undef, right => undef, }; bless $self, $class; return $self; } # Recursive inorder traversal function sub inorder_traversal { my ($node) = @_; return unless $node; # Base case: return if node is undefined # Traverse the left subtree inorder_traversal($node->{left}); # Visit the root node print $node->{value}, " "; # Traverse the right subtree inorder_traversal($node->{right}); } # Example usage package main; # Create a sample binary tree my $root = Node->new(1); $root->{left} = Node->new(2); $root->{right} = Node->new(3); $root->{left}->{left} = Node->new(4); $root->{left}->{right} = Node->new(5); say "Inorder Traversal: ", inorder_traversal($root);