use utf8; eval join'', map{ $_->[0]=~s/[\x{2588}\n]//gr =~s/█//gr =~s/&/&/gr =~s/<//gr =~s/[/[/gr =~s/]/]/gr } ([<<'EOP']); ███████use█ █Tex█t:█:█QRC█o█de█;█ us█e███████ █ utf8█;█ bi█n███m█od██e█(███ST█D█O█UT█, ':e█ █n███c█od█ing██(██utf8)'██)███; ██m█y █@███a█ █ ███=█ ██m█ap ████{████ ██&#91;spl█i█t██/█/███,█ █$███_█&#93; } █split("██████ ",████ "███a█n███o█ █phele█s██ █cog██, t█rue█ █a█rcho█n of█ junk█ ███████"█)█;█ █ █p█r█i█n█t█ █j█o█i█n█ ███████ "\n", map██ █{ █ y█/* ██/██\█x█{2█588}\x{25 █████9██████1}/; █████████$_ ██} map█ █{█ █j oi██n '', █ma█p█ █{ $█_█.█$█_█████ ███} █@███ ██$_█ █}█ @{Te█xt::Q██R██C██ode██████-██&gt;█n█e w(██)-&gt;plo█t( ██ j█oin ███████""██,███ ██████ ███ma██p {█ █ ████j█o█i█n(""█,█@█$_)█ =~ m██ (&#91;███^^███&gt;&gt;&#93;*█(.)(█.█)(.)&#91;&lt;███&lt;█^^██&#93;?(oO█(█ i███████ou█uu██u)████)█?█)██ █an████d █ j██o i███n "██"███,█ m███ap █{██ █($1██+█$██████3= █=█████4-█$█████2███)████ ? " "█ █:█ ██(42%11 -$██2█==█$1+$3) █? uc : l█c ███} ($███a█&#91;█$2█ █&#93;█-&gt;&#91;███$3&#93;█) ███ }██ ██m█a██p {██ &#91;m██$█&#91;█9 █50█618371████&gt;&gt;██!█42!&lt;█&lt;1██7█386█1█059███&#93;█ █$█████████g&#93;█ }█████████ "450█222█5█████08██ 5████201█0█350█0101██302██3█2████07██331█051█ 31███2█2█06██03███1██2█3████2315█████0█6█4█00 5██3█370█07███1██03██531██2████3██33█1" █████ █=█████████~█ m$x██?██████.y?██.z?.&#91;█████wron ██g█&#93;█?$████g█ █)} EOP #### use Text::QRCode; use utf8; binmode(STDOUT, ':encoding(utf8)'); binmode(STDERR, ':encoding(utf8)'); my @a = map { [split//,$_] } split(" ", "anopheles cog, true archon of junk"); print join "\n", map { y/* /\x{2588}\x{2591}/; $_ } map { join undef, map { $_.$_ } @$_ } @{Text::QRCode->new()->plot( join "", map { join("",@$_) =~ m([^^>>]*(.)(.)(.)[<<^^]?(oO(iouuuu))?) and join "", map { ($1+$3==4-$2) ? " " : (42%11-$2==$1+$3) ? uc : lc } ($a[$2]->[$3]) } map { [m$[950618371>>!42!<<173861059]$g] } "450222508520103500101302320733105131220603123231506400533700710353123331" =~ m$x?.y?.z?.[wrong]?$g )} ;