use strict; my %abbreviation_shortcuts = ( 'Nat.' => 'National', 'Biol.' => 'Biology', );
while (my $line = <DATA>) { chomp $line; print "$line\n"; while ($line =~ /(\w+\.)/g) { my $abbr = $1; if (exists $abbreviation_shortcuts{$abbr}) { print " abbr: $abbr -> $abbreviation_shortcuts{$abbr}\n"; $line =~ s/$abbr/$abbreviation_shortcuts{$abbr}/; } } print " final result: $line\n"; } __DATA__ Nat. Neurosci. Expert Reviews in Molecular Medicine. Intermolecular Forces Nature Cell Biol. CNS Neurol Disord Drug Targets Nat. Rev. Mol. Cell Biol. >perl abbr.pl Nat. Neurosci. abbr: Nat. -> National final result: National Neurosci. Expert Reviews in Molecular Medicine. final result: Expert Reviews in Molecular Medicine. Intermolecular Forces final result: Intermolecular Forces Nature Cell Biol. abbr: Biol. -> Biology final result: Nature Cell Biology CNS Neurol Disord Drug Targets final result: CNS Neurol Disord Drug Targets Nat. Rev. Mol. Cell Biol. abbr: Nat. -> National abbr: Biol. -> Biology final result: National Rev. Mol. Cell Biology On Wed, Mar 21, 2012 at 9:53 AM, lina <lina.lastn...@gmail.com> wrote: > Hi, > > For the following keys, I wish the values to be the abbreviation of them, > > Nat. Neurosci. > Expert Reviews in Molecular Medicine. > Intermolecular Forces > Nature Cell Biol. > CNS Neurol Disord Drug Targets > Nat. Rev. Mol. Cell Biol. > > I came up one, not working though, > > > #!/usr/bin/env perl > > use strict; > use warnings; > use autodie qw(open close); > use 5.012; > > > open my $fh, '<', "try.txt"; > > my %abbrev; > my @abbre; > while(my $line = <$fh>){ > if (/([[:upper:]]).*([A-Z]).*?([A-Z])+?/){ > print $1,$2; > print $3,"\n" if defined $3 ## Here is a mess. I don't know > how to handle it > $abbre[]=join '',$1,$2,$3; > $abbrev{$line} = $abbre; > } > } > > Best regards, > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/