Hello, I am trying to iterate over all the lines of a file, each of which starts with a line number, and isolate the line number and the corresponding string into one variable each, then have them printed into a separate file. Could someone give me a clue on how to assign the line number match to the variable so I can reuse it? Here is what I am trying (mainly by analogy with examples I found on the web and in books, but I am lacking the background knowledge). At this point, all I am trying is to see if I can get the line number into a variable, and print it out.
use strict; use warnings; my ($qfn_in_extract) = "extract/extract.txt"; my ($qfn_in_allnumbered) = "extract/allnumbered.txt"; my $dir = mkdir("final"); open(my $fh_in_extract, '<', $qfn_in_extract) or die("Unable to read file \"extract.txt\": $!\n"); open(my $fh_in_allnumbered, '<', $qfn_in_allnumbered) or die("Unable to read file \"allnumbered.txt\": $!\n"); open(my $fh_out_final, '>', "final/final.txt") or die("Unable to create file \"final.txt\": $!\n"); my $id = ''; while (<$fh_in_extract>) { if ($id = m/^\d+/) { print $fh_out_final $id; } } # my $string = m/(?<=\d ).*?$/; # print $fh_out_final $_; This only gives me the return status. I have been playing with and without the if statement, with and without the $id variable, with $_ instead of $id, and with =~ instead of =. But I do not see the light... I would appreciate if someone could point me in the right direction. Clemens