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/


Reply via email to