in reply to Re: multiple substitution
in thread multiple substitution
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?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.#!/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;} }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: multiple substitution
by cheekuperl (Monk) on Aug 25, 2012 at 13:07 UTC | |
|
Re^3: multiple substitution
by Corion (Patriarch) on Aug 25, 2012 at 13:20 UTC | |
|
Re^3: multiple substitution
by AnomalousMonk (Archbishop) on Aug 25, 2012 at 17:28 UTC |