The structure of an error message is:
message at file line x, <handle> line y.
- message is a description of the error.
- file is the file where the error occurred.
- x is the line number in the file where the error occurred.
- handle is the last file handle read from.
- y is the last line1 read from the handle.
In your case, the error occurred at line 93 of lib/My/Module.pm, after the 132nd read of the DATA handle. DATA is the built-in handle for reading text after the __DATA__
tag of a source file. Note that line numbers for the DATA handle are skewed. "<DATA> line 132" is the 132nd line after the __DATA__
tag, not the 132nd line of the file.
1] Technically, it's the value of $.
. This is normally a line number but could be something else if you've changed the value of $/
. It's also skewed for the DATA handle.