my @levels; while (my $row = $sth->fetchrow_hashref) { my $level = $row->{level}; $levels[$level]++; local $" = "."; print "@levels[0 .. $level] $row->{ident}\n"; } __END__ 1 root 1.1 a 1.1.1 b 1.2 c