my $found = substr $tmp, rindex($tmp, "\n")+1; print "$found\n"; #### my $tmp = "1: 2\n2: /my/tmp/20160213T161519/outgoing\n3: DL\n4: 0\nTempSource: , Ue: 2, TaskName=, TempDest: \nTaskName \n/data/busybox/ps |grep mgen5| grep -v grep\nDL txt is running PID: 3848\nRunning:Mgen:3848"; my @fields = qw(All Value Name Process_ID); my %substr; @substr{@fields} = $tmp =~ m/\n(Running:(([^:]+):(\d+)))(?:\D|$)/; printf "%-12s[%s]\n", $_, $substr{$_} for @fields; #### All [Running:Mgen:3848] Value [Mgen:3848] Name [Mgen] Process_ID [3848]