2013-08-29 6 views
1

J'essaie d'extraire des sous-chaînes d'un fichier qui contient des chaînes. Le fichier est comme:comment charger tout le fichier dans une variable

>scaffold30  24194 
    CTTAGCAGCAGCAGCAGCAGTGACTGAAGGAACTGAGAAAAAGAGCGAGCTGAAAGGAAGCATAGCCATTTGGGAGTGCCAGAGAGTTGGGAGG GAGGGAGGGCAGAGATGGAAGAAGAAAGGCAGAAATACAGGGAGATTGAGGATCACCAGGGAG......... 
    ................. 

Pour l'extraction des sous-chaînes, je me sers d'un fichier avec les coordonnées du début et la fin des sous-chaînes. Le script que j'ai écrit est:

open my $coords_info, $coords_file or die "Could not open $coords_file: $!"; 
open my $chr_info, $chrom or die "Could not open $chrom: $!"; 
my $count = 0; 


while(my $sline = <$chr_info>) { 
    if ($sline!~ m/^>/) { 
      chomp $sline; 
      print $sline; 
    foreach(my $cline = <$coords_info>) { 
      [email protected] = split('\t', $cline); 
      my $start = $data[0]; 
      my $end = $data[1]; 
      my $offset = $end - $start; 
      $count++; 
      my $sub = substr($sline, $start+1, $offset); 
      print ">conserved $count\n"; 
      print $sub; 
      } 
    } 
} 

Mon problème est que je veux charger toute la chaîne du fichier à la variable sline (et non ligne par ligne à chaque itération, et après cela, le foreach à . extraire la sous-chaîne Je sais que cela semble un problème trivial, mais pourriez-vous me aider s'il vous plaît ?? Merci ...

+2

http://search.cpan.org/~uri/File-Slurp-9999.19/lib/File/Slurp.pm#SYNOPSIS –

+0

il me donne "Impossible de localiser le fichier/Slurp.pm dans @INC" I – Vasilis

+0

@Vasilis: Fichier :: Slurp n'est pas un module Perl standard. Vous devez l'installer sur votre machine. –

Répondre

3

lire tous les fichiers dans une variable de chaîne:

{ 
    local $/ = undef; 
    $variable = <$my_fh>; 
} 

lire tous les fichiers au tableau:

my @array = <$my_fh>; 
Questions connexes