in reply to (Golf) Hangman

Not the shortest but what can you expect with all those snazzy graphics ;-)

sub hangman { @w=split//,pop;@w{@w}=("-")x@w;@h=split$","______ | |\n |\n |\n |\n __ +____\n";$d="______\n| |\n| _O_\n| |\n| / \\\n|______";while($g<8){p +rint@h[reverse 0..$g-1],$/,@w{@w},"$/?";$_=<>;chop;$w{$_}?$w{$_}=$_:$ +g++;(join"",values%w)!~/-/&&last}print$g<8?@w:$d } hangman("Hangman");

If you ditch the graphics it comes in at 125 (122 without the ? prompt)

sub hangman { @w=split//,pop;@w{@w}=("-")x@w;while($g<8){print@w{@w},"$/?";$_=<>;cho +p;$w{$_}?$w{$_}=$_:$g++;(join"",values%w)!~/-/&&last}$g } print hangman("Hangman")<8 ? "Winner!" : "RIP";

Update

Borrowing a couple of japhy's ideas 110 strokes

sub hangman { @w=split//,pop;@w{@w}=("-")x@w;while($g<8){print@w{@w},$/;<>=~/./;$w{$ +&}?$w{$&}=$&:$g++;"@w{@w}"!~/-/&&last}$g }

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print