diff --git a/upsidedown/upsidedown b/upsidedown/upsidedown index 2ea01f3..811600a 100755 --- a/upsidedown/upsidedown +++ b/upsidedown/upsidedown @@ -159,10 +159,10 @@ B(1) use utf8; my $down = ' @{}'. - q{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,';0123456789?!"&()[]/\_‾}; + q{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,';0123456789?!"&()[]/\_‾=-}; my @up = (" ",qw(@ } {), qw{∀ q Ɔ p Ǝ Ⅎ ⅁ H I ſ ʞ ⅂ W N O Ԁ Ό ᴚ S ⊥ ∩ Ʌ M X ⅄ Z ɐ q ɔ p ǝ ɟ 6 ɥ ı ſ ʞ l}, - qw{ɯ u o d b ɹ s ʇ n ʌ ʍ x ʎ z ˙ ' , ؛ 0 Ɩ 2 Ɛ ᔭ 5 9 Ɫ 8 6 ¿ ¡ „ ⅋ ) ( ] [ / \ ‾ _}); + qw{ɯ u o d b ɹ s ʇ n ʌ ʍ x ʎ z ˙ ' , ؛ 0 Ɩ 2 Ɛ ᔭ 5 9 Ɫ 8 6 ¿ ¡ „ ⅋ ) ( ] [ / \ ‾ _ = -}); my %up; my @down = split//,$down; @@ -172,9 +172,20 @@ my @down = split//,$down; binmode STDOUT, ':utf8'; binmode STDIN, ':utf8'; if(@ARGV) { - print @up{reverse split//,"@ARGV"},"\n"; + print upsidedown("@ARGV"),"\n"; } else { while(<>) { - print @up{reverse split//,$_},"\n"; + print upsidedown($_),"\n"; } } + +sub upsidedown { + my $string = shift; + my @r = (); + for (reverse split//,$string) { + # Return the letter upside down + # - or itself if not upside down defined + push @r, ($up{$_} or $_); + } + return @r; +}