#!/usr/bin/perl # http://perlmonks.org/?node_id=1138357 use strict; use warnings; $_ = < END for my $defunct ( /^\s*(\d+)\s+\d+\s+/gm ) { my $pid = $defunct; my $answer = ''; while( $pid > 0 && /^(\s*$pid\s+(\d+).*\n)/m ) { $answer = $1 . $answer; $pid = $2; } print "$answer\n"; }