in reply to how to find last word match ?
You seem to be dealing with record oriented data where records are separated by empty lines. Often it is convenient to read a record as a time. Consider:
use strict; use warnings; my $data = <<DATA; this is test only 1 Baki: 9.70 this is test only 2 Baki : 9.30 this is test only 3 Baki : 9.00 DATA my $lastRecord; open my $in, '<', \$data; local $/ = "\n\n"; # Read a record at a time while (defined (my $record = <$in>)) { chomp $record; next if $record =~ /$(?:Baki)/; $lastRecord = $record; } print $lastRecord;
Prints:
this is test only 3 Baki : 9.00
Note the use of three parameter open and a lexical file handle. Usually there would be an or die ...; for the open as well, but in this case (using a string as a file) there is no need.
|
|---|