This is a module that simplifies translating US Military Paygrades (E-1, W-3, O-4) into the proper salutation for that rank, given the internet domain of the service of interest (af, army, navy, usmc, uscg). For generating mail in response to a form, it beats remembering. It has some historical notes as well.
package Paygrades; require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(paygrade); our @EXPORT_OK = qw(%navy %army %af %usmc); =historical notes Some of the paygrades listed below are no longer in use, the statutory authority for them having expired upon the death of GENA Bradley, others representing special conferrals on extraordinary commanders, and one established to ensure the seniority of George Washington to all United States military personnel, forever. Additionally, the United States Air Force no longer has Warrant Officers. The first officer promoted to Fleet Admiral was Leahy, who was President Roosevelt's Chief of Staff. He was joined by Ernest King (Chief of Naval Operations), Chester Nimitz (CinC, Pacific Ocean Areas) and William Halsey (COM7THFLT). The first officer promoted to General of the Army was George Marshall (Chief of Staff of the Army) joined by Douglas MacArthur (CinC, Southwest Pacific), Dwight Eisenhower (Supreme Commander, Allied Forces Europe) and Omar Bradley (US Army Europe). The only General of the Air Force to date was Harold 'Hap' Arnold, Chief of Staff, Army Air Forces. Admiral of the Navy was conferred on George Dewey for the victory at Manila Bay in the Spanish American War. General of the Armies was conferred on John 'Blackjack' Pershing for his command of the American Expeditionary Force during World War I. It is said that George Marshall was very apprehensive about being promoted to five stars, for fear of offending him. George Washington is sui generis, and the perpetual General of the Armies of the United States of America. =cut %navy = ( 'E-1' => 'Seaman', 'E-2' => 'Seaman', 'E-3' => 'Seaman', 'E-4' => 'Petty Officer', 'E-5' => 'Petty Officer', 'E-6' => 'Petty Officer', 'E-7' => 'Chief', 'E-8' => 'Senior Chief', 'E-9' => 'Master Chief', 'W-1' => 'Warrant Officer', 'W-2' => 'Chief Warrant Officer', 'W-3' => 'Chief Warrant Officer', 'W-4' => 'Chief Warrant Officer', 'W-5' => 'Chief Warrant Officer', 'O-1' => 'Ensign', 'O-2' => 'Lieutenant (j.g.)', 'O-3' => 'Lieutenant', 'O-4' => 'Lieutenant Commander', 'O-5' => 'Commander', 'O-6' => 'Captain', 'O-7' => 'Admiral', 'O-8' => 'Admiral', 'O-9' => 'Admiral', 'O-10' => 'Admiral', 'O-11' => 'Fleet Admiral', 'O-12' => 'Admiral of the Navy'); %usmc = ( 'E-1' => 'Private', 'E-2' => 'PFC', 'E-3' => 'Lance Corporal', 'E-4' => 'Corporal', 'E-5' => 'Sergeant', 'E-6' => 'Staff Sergeant', 'E-7' => 'Gunny', 'E-8' => 'Master Sergeant', 'E-9' => 'Master Guns', 'W-1' => 'Gunner', 'W-2' => 'Gunner', 'W-3' => 'Gunner', 'W-4' => 'Gunner', 'W-5' => 'Gunner', 'O-1' => 'Lieutenant', 'O-2' => 'Lieutenant', 'O-3' => 'Captain', 'O-4' => 'Major', 'O-5' => 'Lieutenant Colonel', 'O-6' => 'Colonel', 'O-7' => 'General', 'O-8' => 'General', 'O-9' => 'General', 'O-10' => 'General'); %army = ( 'E-1' => 'Private', 'E-2' => 'Private', 'E-3' => 'PFC', 'E-4' => 'Corporal', 'E-5' => 'Sergeant', 'E-6' => 'Staff Sergeant', 'E-7' => 'Sergeant', 'E-8' => 'Master Sergeant', 'E-9' => 'Sergeant Major', 'W-1' => 'Chief', 'W-2' => 'Chief', 'W-3' => 'Chief', 'W-4' => 'Chief', 'W-5' => 'Chief', 'O-1' => 'Lieutenant', 'O-2' => 'Lieutenant', 'O-3' => 'Captain', 'O-4' => 'Major', 'O-5' => 'Lieutenant Colonel', 'O-6' => 'Colonel', 'O-7' => 'General', 'O-8' => 'General', 'O-9' => 'General', 'O-10' => 'General', 'O-11' => 'General of the Army', 'O-12' => 'General of the Armies', 'O-13' => 'General of the Armies of the United States o +f America'); %usaf = ( 'E-1' => 'Airman', 'E-2' => 'Airman', 'E-3' => 'Senior Airman', 'E-4' => 'Sergeant', 'E-5' => 'Staff Sergeant', 'E-6' => 'Tech Sergeant', 'E-7' => 'Master Sergeant', 'E-8' => 'Senior Master Sergeant', 'E-9' => 'Chief Master Sergeant', 'W-1' => '', 'W-2' => '', 'W-3' => '', 'W-4' => '', 'W-5' => '', 'O-1' => 'Lieutenant', 'O-2' => 'Lieutenant', 'O-3' => 'Captain', 'O-4' => 'Major', 'O-5' => 'Lieutenant Colonel', 'O-6' => 'Colonel', 'O-7' => 'General', 'O-8' => 'General', 'O-9' => 'General', 'O-10' => 'General', 'O-11' => 'General of the Air Force'); sub paygrade { my ($title, $domain) = @_; my $paygrade; unless ($title =~ /(^W)|(^O)|(^E)/) { return $title; # print $title; } $domain = uc($domain); if ($domain =~ /NAVY/) { $paygrade = $navy{$title}; } elsif ($domain =~ /USCG/) { $paygrade = $navy{$title}; } elsif ($domain =~ /USMC/) { $paygrade = $usmc{$title}; } elsif ($domain =~ /AF\.MIL/) { $paygrade = $usaf{$title}; } elsif ($domain =~ /ARMY/) { $paygrade = $army{$title}; } else { $paygrade = "$army{$title}/$navy{$title}"; } #print $paygrade; return $paygrade; }

2006-06-02 Retitled by planetscape, as per Monastery guidelines

( keep:0 edit:10 reap:1 )

Original title: 'Paygrades'

Replies are listed 'Best First'.
Re: Translate military paygrades to rank salutations
by Limbic~Region (Chancellor) on Jun 01, 2006 at 23:09 UTC
    girarde,
    I don't know about the armed forces, but here are some corrections for the Army.
    E-3 => 'Private First Class' E-4 => 'Specialist' or 'Corporal' E-7 => 'Sergeant First Class' E-8 => 'Master Sergeant' or 'First Sergeant' E-9 => 'Sergeant Major' or 'Command Sergeant Major' and exactly 1 'Ser +geant Major Of The Army' W-1 => 'Warrant Officer' W-2..W-5 => 'Chief Warrant Officer' 'O-1' => 'Second Lieutenant', 'O-2' => 'First Lieutenant', 'O-7' => 'Brigadier General', 'O-8' => 'Major General', 'O-9' => 'Lieutenant General', '0-10' => 'General', 'O-11' => 'General of the Army' (reserved for wartime only) 'O-12' => DOES NOT EXIST 'O-13' => DOES NOT EXIST
    See this for an authoratative source across the entire DoD.

    Cheers - L~R

    Corrected 1/2 Lieutenant per ptum. We had much more descriptive names for them when I was in ;-)

      Ummm, actually, O-1 is a 2nd Lieutenant (or "Butter Bar") and O-2 is a First Lieutenant.

      Update: Ah, I see you corrected it. :)


      No good deed goes unpunished. -- (attributed to) Oscar Wilde
      It's true that O-1s are second looeys, and O-2s are first looeys. But did you write to Dear Second Lieutenant Ducrow or just to Lieutenant Ducrow?

      The paygrades of O-12 and O-13 don't really exist in DOPMA. They are there to deal with the unique cases of Pershing and Washington, per the historical notes.

      How one would use this module to specifically write mail in response to a web form submitted by one those individuals, or specifically by the CSMA, is a good question that I will address in 1.1. :-)

Re: Translate military paygrades to rank salutations
by TStanley (Canon) on Jun 02, 2006 at 12:30 UTC
    And the corrections for the Air Force
    %usaf = ( 'E-1' => 'Airman Basic', 'E-2' => 'Airman', 'E-3' => 'Airman First Class', 'E-4' => 'Senior Airman', 'E-5' => 'Staff Sergeant', 'E-6' => 'Technichal Sergeant', 'E-7' => 'Master Sergeant', 'E-8' => 'Senior Master Sergeant', 'E-9' => 'Chief Master Sergeant', 'W-1' => '', 'W-2' => '', 'W-3' => '', 'W-4' => '', 'W-5' => '', 'O-1' => 'Lieutenant', 'O-2' => 'Lieutenant', 'O-3' => 'Captain', 'O-4' => 'Major', 'O-5' => 'Lieutenant Colonel', 'O-6' => 'Colonel', 'O-7' => 'General', 'O-8' => 'General', 'O-9' => 'General', 'O-10' => 'General', 'O-11' => 'General of the Air Force');

    TStanley
    --------
    War is an ugly thing, but not the ugliest of things. The decayed and degraded state of moral and patriotic feeling which thinks that “nothing is worth war” is much worse. The person who has nothing for which he is willing to fight, nothing which is more important than his own personal safety, is a miserable creature and has no chance of being free unless made and kept so by the exertions of better men than himself. -- John Stuart Mill
Re: Translate military paygrades to rank salutations
by jfroebe (Parson) on Jun 02, 2006 at 14:20 UTC

    Just a word of warning you may want to add. It is technically possible to be one level higher (or even lower) in rank than the actual pay grade.

    An example of being a higher rank than pay grade... the position you reside in allows for an E-4 paygrade but you transfer into the unit as a Sgt. (army) - they can only pay you as an E-4. This isn't uncommon in the Army National Guard where the funding is typically controlled by the state (unless mobilized by the federal gov).

    An example of being a lower rank than pay grade... you were demoted for some reason (e.g. Article 15). While most demotions also include pay grade reduction, it doesn't always occur. Another is if you transition from one branch of the military to another - but this is rare.

    point is that the mapping of pay grade to rank is not always an accurate way of determining rank.

    Jason L. Froebe

    Team Sybase member

    No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1

      Frocking, promotable status ('Select' in the Navy), spot promotion, and reduced pay based on grade authorized in billet are WELL outside my scope here. :-)

      This module writes the letter for the grade the guy picked from the picklist.

        Agreed :) Just thought you might like to add an "fyi" to the comments stating it

        Jason L. Froebe

        Team Sybase member

        No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1

      There is also the practice of 'frocking' an officer who is assigned to a position that requires a higher rank (there are a number of reasons this might be so), but who has not yet been promoted to that rank. Officers who are selected for promotion still have to 'wait their turn' according to their seniority, so that two people promoted by the same board will not flip-flop in terms of seniority. There can be a waiting period (as long as a year) while an officer may be 'Promotable' yet not yet actually promoted (or receiving the pay for their new rank). During that time frame, they are entitled to add a (P) after their current rank (e.g., 'MAJ (P)'). They may also be assigned to a position requiring the higher rank (and thus, tying back to my first point, need to be 'frocked').

Re: Translate military paygrades to rank salutations
by girarde (Hermit) on Jun 02, 2006 at 15:56 UTC
    Something I need to clarify: this is not intended to have the proper name of the paygrade, otherwise the flag grades would have all the Brigadier General and Vice Admiral stuff. It gives the salutation you would use in writing to the individual, and while an Air Force E-1 (par exemple) is an Airman Basic, that's not how you address one in correspondence. This module was written to put salutations in email, after all.
Re: Translate military paygrades to rank salutations
by ptum (Priest) on Jun 02, 2006 at 13:52 UTC

    In addition to corrections by Limbic~Region, et. al., here are a few more, from the perspective of the US Army:

    • A W-1 is a 'Warrant Officer 1' -- it is only at the 2-4 levels that he or she becomes a 'Chief Warrant Officer (2|3|4).
    • An E-1 is generally referred to as a 'Private Recruit' as opposed to an E-2 ('Private').

    Personally, I never made it beyond E-5 (Sergeant) but my brother recently pinned on his Colonel (O-6) eagles! A good day for him. :)


    No good deed goes unpunished. -- (attributed to) Oscar Wilde

      Not necessarily, but it has been a while since I was in the Army. Sometimes a lower-ranked person in a class of ranks will be referred to by the class name -- so you might call an E-1 a 'Private' out of courtesy. Similarly, you'll see 2nd Lieutenants (2LT) referred to simply as 'Lieutenant' and even Lieutenant Colonels (LTC) referred to as 'Colonel'.

      Looking at the DOD rank page, it seems as though the term 'Recruit' has been dropped for the Army (although it is still there for the Navy, and an E-1 is a 'Private' while an E-2 is a 'Private E-2'. I guess I have to move with the times. :)


      No good deed goes unpunished. -- (attributed to) Oscar Wilde
      Thanks, I can't believe the W-1 got by me.

      But is an E-1 actually addressed as Private Recruit?

Re: Translate military paygrades to rank salutations
by zentara (Cardinal) on Jun 02, 2006 at 16:05 UTC
    What a difference a space makes..... I was Captain's Masted so many times before they let me out, that I would have been E -1.

    :-)


    I'm not really a human, but I play one on earth. flash japh