You can even do it avoiding the temporary list generated by
split. Instead, you can use
rindex to go directly to the appropriate part of the string:
my $rec = " 2425 S 25 \" 6 47! 86 18 21! 87 23 23! -
+ -! - -! 96";
my $last = substr $rec, 1 + rindex($rec, " ");
print $last, $/;
I'm only posting this for the sake of completeness. This only works because your record separator is whitespace.
rindex won't generalize as well as
split (more complicated separators, picking out records other than the last, ignoring trailing empty records).