I think you want to select particular lines of interest from the input for further processing? This simple code does that.
Please see Wiki Article on regex (Regular Expression).#!/usr/bin/perl use strict; use warnings; use Inline::Files; # Just for this Demo # so that this is a single runnable file # Monk node_id=11106111 my %nameValid; # initialize Name Hash... # Name the hash by what the Value Means, # not by what the hash key means while (my $name = <LISTOFNAMES>) { chomp $name; # shorter idioms exist $nameValid{$name}=1; # but this is just fine } while (my $line = <DATA>) { chomp $line; my ($name,$data) = split ",",$line,2; if ( exists $nameValid{$name} ) { # name is in "list" do something # I have no idea what to do? # so I just print that line print "$name => $data\n"; } } # prints the one line of interest: # 122854/1 => 284224,284277,chrX,255,+,284224,284277,255,0,0,1,53,0 __LISTOFNAMES__ 1000567/1 1000567/2 122854/1 1000574/1 1000574/2 __DATA__ 1083978/2,284224,284292,chrX,255,+,284224,284292,255,0,0,1,68,0 122854/1,284224,284277,chrX,255,+,284224,284277,255,0,0,1,53,0 641613/1,284224,284290,chrX,255,+,284224,284290,255,0,0,1,66,0
In reply to Re^3: Extacting lines where one column matches a name from a list of names
by Marshall
in thread Extacting lines where one column matches a name from a list of names
by mr_clean
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |