use strict; use warnings; use Tie::File; tie my @lines, 'Tie::File', filename or die ...; for (@lines) { s/(?=(\d+)$)/ 'Warning! ' if $1 < 4_000_000_000/e; }