The distinctive Perl camel is (c) O'Reilly
Perl Workshop Home Page
Home of the Bioinformatics Perl Workshop perl workshop > courses > introduction to perl (1.0.1.8) > File I/O (.5/8) > bes-01 (.c1)

course 1.0.1.8

Level: beginner
1.0.1.8.5
while loop; file I/O; reading from files; writing to files; printf/sprintf

legend

course code

cat.course.level.sessions.session

e.g. 1.0.1.8

categories

0 | introduction and orientation

1 | perl fundamentals

2 | shell and prompt tools

3 | web development

4 | CPAN Modules

5 | Ruby

levels

level: all all ( 0 )

level: beginner beginner ( 1 )

level: intermediate intermediate ( 2 )

level: advanced advanced ( 3 )

[ Perl makes a perfect low-calorie meal or snack ]

lecture code viewer

downloads

Code
File I/O
File I/O
Martin Krzywinski
#!/usr/local/bin/perl use Data::Dumper; open(FH,"/home/martink/work/ucsc/hg17/bes/bacend.parsed.txt"); %clonesize = (); while($line = <FH>) { chomp $line; ($clone,undef,$chr,$start,$end) = split(" ",$line); $size = $end - $start + 1; $clonesize{$clone} = $size; } close(FH); open(RX,"rx.txt"); @rx = (); while($line = <RX>) { chomp $line; next if $line =~ /^#/; push @rx, $line; } close(RX); print Dumper(\@rx); %sum = (); %count = (); for $clone (keys %clonesize) { for $rx (@rx) { if($clone =~ /$rx/) { $sum{$rx} += $clonesize{$clone}; $count{$rx} ++; } } } for $rx (sort keys %sum) { printf("group %10s num %6d avgsize %10.1f\n",$rx,$count{$rx},$sum{$rx}/$count{$rx}); }

5 | File I/O | 1.0.1.8.5

1.0.1.8.5.p1 | File I/O | Martin Krzywinski | ppt
1.0.1.8.5.c1 | bes-01 | Martin Krzywinski | code
1.0.1.8.5.c2 | data.txt | Martin Krzywinski | code
1.0.1.8.5.c3 | fasta-01 | Martin Krzywinski | code
1.0.1.8.5.c4 | fasta-02 | Martin Krzywinski | code
1.0.1.8.5.c5 | file-01 | Martin Krzywinski | code
1.0.1.8.5.c6 | file-02 | Martin Krzywinski | code
1.0.1.8.5.c7 | file-03 | Martin Krzywinski | code
1.0.1.8.5.c8 | file1.txt | Martin Krzywinski | code
1.0.1.8.5.c9 | file2.txt | Martin Krzywinski | code
1.0.1.8.5.c10 | printf-01 | Martin Krzywinski | code
1.0.1.8.5.c11 | randseq.fa | Martin Krzywinski | code
1.0.1.8.5.c12 | rx.txt | Martin Krzywinski | code
1.0.1.8.5.c13 | sherlock.txt | Martin Krzywinski | code
1.0.1.8.5.c14 | sprintf-01 | Martin Krzywinski | code
1.0.1.8.5.c15 | while-01 | Martin Krzywinski | code
1.0.1.8.5.a1 | File I/O | Martin Krzywinski | pdf
1.0.1.8.5.s1 | File I/O | Martin Krzywinski | slides