in reply to Re: Concatenating arrays fetched from different text files
in thread Concatenating arrays fetched from different text files

To: Cristoforo,

Perfect, this is exactly what I need. You solved it in 20 lines and my code is 50-60 lines and does not even solve the problem. I was even thinking of making my code more complicated to solve the problem. Well the only thing that I need to figure out how to extract the 4th element of each array (e.g. array3). This is the location of the item that I need to extract.

Thanks a lot for your time and effort, to assist me.

Seeking for Perl wisdom...on the process...not there...yet!
  • Comment on Re^2: Concatenating arrays fetched from different text files

Replies are listed 'Best First'.
Re^3: Concatenating arrays fetched from different text files
by Laurent_R (Canon) on May 29, 2014 at 10:54 UTC
    What do you mean by the 4th element of each array? From everything you said previously, you seemed to be willing to use all elements of the arrays. Or perhaps you mean that you need to use the 4th element of each line of the input files? Your requirement is not clear to me.

      To: Laurent_R,

      Apologies for the confusion, I did not explain from the beginning that I want to retrieve the 4th element of each array. I thought it would not make a difference since I was not even aware of perlre.

      After spending some time I manage to understand, that my problem could be solved by applying that simple solution. Unfortunately since they are new to me I am not feeling that comfortable with them. Never the less is always fascinating to learn new capabilities of programming languages.

      I will update my sample files to clear the miss understanding about the 4th element that I am trying to read.

      Thank you for your time and effort reading and answering my question.

      Seeking for Perl wisdom...on the process...not there...yet!
        Well, if I understand you correctly, you really need the 4th element of each array, which means that you only really need the 4th line of each file. If this is correct, then don't go into the trouble of storing all your files into arrays, but simply store into a single array the 4th line of each file (and you can stop reading the file as soon as you've reached the 4th line). Your code will be far simpler, will execute faster and use much less memory.

        Assuming the files are passed as arguments to the script, you could have something as simple as this (untested):

        my @array; # I would use a better name if I knew the array's contents for my $file (@ARGV) { open my $FH, "<", $file or die "cannot open $file $!" while (<$FH>) { chomp and push @array, $_ and last if $. == 4; } } print "@array\n";
        Or did I misunderstand what you are after?