sub parents { my ($name,$pid,$processes_href) = @_; unless(exists($processes_href->{$pid})) { return ''; } my $secondname = $processes_href->{$pid}{name}; if ($name eq $secondname) { return parents($secondname,$processes_href->{$pid}{ppid},$processes_href); } return ",".$secondname.parents($secondname,$processes_href->{$pid}{ppid},$processes_href); } sub create_chain { my ($processes_href,$paths_href) = @_; foreach my $data (keys(%{$paths_href>{'data'}})) { while (my ($file, $procs) = each %{$data}) { foreach my $pid (keys(%{$procs->{'pid'}})) { print $fh $file.parents($file,$pid,$processes_href)."\n"; } } } close($fh); }