use List::Util qw[ max ];; sub maxNd { max( map{ ref() ? maxNd( @$_ ) : $_ } @_ ) };; my @b = ...;; print maxNd( @b );; 9981