use strict; use warnings; # use Data::Dumper; # for debugging # change this to change what a "number" is. my $rx_number = qr{ \d+ }xms; # these variables are intentionally left undefined. my $largest_n; my $line_with_largest_n; LINE: while (my $line = ) { # print Dumper $line; # for debug # extract all number groups from line. my @numbers = $line =~ m{ $rx_number }xmsg; # print Dumper \@numbers; # for debug # nothing to do unless some numbers were extracted. next LINE unless @numbers; # extracted some numbers from this line. find largest. my $largest_n_in_line = (sort { $a <=> $b } @numbers)[-1]; # print Dumper $largest_n_in_line; # for debug # nothing to do unless # NO largest n has been seen so far # OR largest n in line is greater than largest n seen so far. next LINE unless !defined($largest_n) or $largest_n_in_line > $largest_n ; # update largest n and line with largest n. $largest_n = $largest_n_in_line; $line_with_largest_n = $line; # print Dumper $largest_n, $line_with_largest_n; # for debug } # end while LINE if (defined $line_with_largest_n) { print "F$line_with_largest_n"; } else { print "no line with a number was seen \n"; } #### c:\@Work\Perl\monks\SSSufe>perl line_with_lagest_n_1.pl < lines.dat F1 this year is 2019 1