in reply to Re: split file and put contents in variables?
in thread split file and put contents in variables?

What do you think?
I think you should use the code I showed :)
my ($x, $y, $z) = split /\s+/, $line;

Replies are listed 'Best First'.
Re^3: split file and put contents in variables?
by angela2 (Sexton) on Feb 02, 2016 at 15:52 UTC

    Thanks toolic :)

    I have one more question, I just remembered actually that the first entry in my file, namely FOLDING, is made up from two variables, as in I have assigned it to two variables, $pattern and $match, used as $pattern$match. I know it looks weird but I needed to do it that way.

    So if in a different file my FOLDING pattern is "W" and matches a lipid, I would have an entry as "Wlipid". Hopefully that makes sense?

    So my question is how do I match this now? Do I just match is as my ($w$x, $y, $z) ? Or it makes no sense?

      I may have got this completely wrong but it looks to me like you want to match lines in the file to some previously assigned variables. If so, perhaps this will clarify

      #!perl use strict; use warnings; my $pattern = 'W'; my $match = 'lipid'; my $cyclo = 'CC'; my $group = 'GGG'; my $results = 'c:/temp/'; my $filepath = 'Test/'; my $infile = 'ABC.txt'; chdir "$results$filepath" or die "cannot chdir to $results$filepath ! $!"; if (-e $infile) { open my $test, '<', $infile or die "Can't open $infile: $!"; while (my $line = <$test>){ my @f = split ' ', $line; if ( ($f[0] eq $pattern.$match) && ($f[1] eq $cyclo) && ($f[2] eq $group) ){ print $line; } } } else { print "$infile does not exist"; }
      poj

        Hi, thanks for your time! Yes you are right, although just to clarify this is what I'm trying to match. In one file, it'll be

        Wlipid     propane     carboxyl

        In another file it'll be

        Zchain     pentane     ether

        And so on. So the entries aren't in lines, they're in one line each, space delimited in between, as seen above. I'll try your code now, thanks for the effort!