Could you explain the code for a sec. Should those ! be /.
I can understand $string =~ s/(apples|oranges|bananas)/$replace{$1}/e would take the first match from string ($1). Then because the /e tag the second part in substitution would be value complement to the key ($1).
What is the deal with the || (or?) statement.
(I guess I'm mistaken with the ! elements)
Would this (mine own )code work?
#!/usr/bin/perl -w
use strict;
use warnings;
my @keys = qw(F29-2 F29-3 F29-4 F44-2 F53-2 F38-3 F12-2);
my @vals = qw(F29B2 F29B3 F29B4 F44B2 F53B2 F38B3 F12B2);
my %replace;
@replace{@keys} = @vals;
while (my $line = <>) {
if($line =~ m/^\>/){my $name=$line;$name =~ s/(F29-2,F29-3,F29-4,F
+44-2,F53-2,F38-3,F12-2)/$replace{$1}/;print $name;}
elsif ($line!~m/^\>/){print $line;}
}
Did not want to use some convoluted regexp patterns because they might be usable this time but not always. Want to learn the tehnique to do such list/hash substitutions as in original question.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|