You don't say exactly what is not working. What is the output when you run your program?
Given the title of your post, presumably the failure is in the directory listing. Looking at the documentation for Net:SFTP:Foreign.pm, the wanted value should be a full regex, not a glob-style expression. So perhaps you want a regex more like /^abcd.*\.txt$/ ? Your existing regex will find files matching "abc", followed by zero or more "d", followed by one character, followed by "txt".
A couple of other customary comments: please enclose code in <code> tags. You can go ahead and edit your post now to do this. It's not advisable to say that your question is "urgent" as some of the monks do not like this, and might not encourage replies.