In general simple stuff like spliting strings, or checking if a string has an 'a' for example, is quicker using
split() or
index() instead of a regex. So I would stick with the split().
For capturing the output of a system call
my $lsl = `ls -l "$fnm" 2>&1`;
looks good to me.