#!/usr/bin/perl use strict; use integer; use warnings; use HTML::Entities; # typoadjust # in: text, quotation-style (1 = german, other = french) # out: adjusted text sub typoadjust { $_ = encode_entities(decode_entities(shift)); # fix quotations if (shift == 1) { s/(^|\s)("|“|»|«)/$1„/g; s/("|«|»|”)($|[\s\-])/“$2/g; s/(^|\s)('|‘|‹|›)/$1‚/g; s/('|‹|›|’)($|[\s\-])/‘$2/g; } else { s/(^|\s)("|„|“|«)/$1»/g; s/("|“|”|»)($|[\s\-])/«$2/g; s/(^|\s)('|‘|‚|‹)/$1›/g; s/('|‘|’|›)($|[\s\-])/‹$2/g; } # fix dash s/(\s)-(\s)/$1–$2/g; return decode_entities($_); }