If you've got a literal ^ followed by a literal
I (i.e. you don't mean a TAB character), keep in mind that split takes a regex and ^
has a special meaning therein.
If you're trying to parse something like a CSV file exported from Excel or the like, consider Text::CSV_XS.