#!perl -p s/($regex)/$1 ($acronyms{$1})/g; BEGIN { %acronyms = ( 'HTML' => "Hypertext Markup Language", 'ICBM' => "Intercontinental Ballistic Missile", 'EEPROM' => "Electronically-erasable programmable read only memory", 'SCUBA' => "Self Contained Underwater Breathing Aparatus", 'FAQ' => "Frequently Asked Questions", 'LCARS' => "Library Computer And Retrieval System", 'NASA' => "National Aeronautical and Space Administration" ); $regex = join '|', map quotemeta, sort { length($b) <=> length($a) } keys %acronyms; }