sub traverse { my ($head, $function) = @_; while (defined $head) { $function->($head); $head = $head->{next}; } }