The arrary contents are 1. C:\abc\dfg\axy 2. C:\abc\dfg\#@$#@$@\hwllo $key="C:\abc\dfg" $key=~s/(\\[!@#$%^&(),.\}\{[\]+-])/\\$1/g; $line=~s/(\\[!@#$%^&(),.\}\{[\]+-])/\\$1/g; if( $line =~ /$key\\\S+\\/){ # if this is not node ($pat)=$line=~/$key\\(\S+)\\/; }else{ # if end node ($last_node)=$line=~/$key\\(.*)/; }