in reply to Pushing Filename parts into an array

Do you know that your language code is always numeric and the user names never contain numerals? If not, you will run into problems. The other solutions would be to specify user names and language codes with delimeters or in fixed width format

Here's one possible solution:

my ($user, $lang, $desc, $published, $public ) = $line =~/([^\d]+)(\d+)\.([^\.]+)\.([^\.])\s+\(([^\)])\)/;