What does ${wfid} mean in here ? Is it same as $wfid ? If yes then why use this syntax ?
In your code, yes, ${wfid} is the same as $wfid. You would need the curlies if you had this instead (I deleted the dot):
$filelist = "$iwhome/tmp/filelist-${wfid}txt";
Without the curlies, you'd have a different variable: $wfidtxt:
$filelist = "$iwhome/tmp/filelist-$wfidtxt";
Refer to Scalar value constructors
Is file handler FILELIST adding members to $filelist ?
FILELIST is a file handle. Your
open statement opens the file named $filelist for output. The
print adds lines to the file.
Generally, you need not use &. Refer to Prototypes for gory details.