Categories

Posts in this category

Mon, 24 Aug 2009

Starry Perl 6 obfu


Permanent link

I decided to have some fun with Perl 6 and wrote my first obfu. So here it is, broken to 50 columns per line:

<(*+*)*(*+* +*/*) **** ** * * *+*+*/* **** ** * *
*+*-*/* **** ** * * *+* ****-* **** ** * * *-(*-*/
*) ** (*+*/*) **** ** * * *-* **** ** * * *-*+*/*
**** ** * * *+* **** ** * * *-* * * ***((* - */*)
** * * *-*/*) * * **** ** * * *+*/* ****-* ***(*-*
/*)**(*+*/*) * * ***((*-*/*)** * * *-*/*) * * ****
** * * *+*/* **** ** * * *+*+*/*-* * *>.split(<***
>).map: {eval("(* ** *+*+*-*/*+$_)(<* * *>)").chr\
.print}

(Not syntax-hilighted as I usually do here because the syntax hilighter does this one oh so wrong, it would only enhance confusion).

It works on today's Rakudo build, but I'm not aware of any feature that I use which wasn't available in the 2009-08 release.

Have fun figuring it out!

Update: Since it has caused a bit of confusion on #perl6, it does not print the usual obfu text, but rather a minor variation.

Second update: Newer Rakudo versions implement a slightly updated specification regarding the Whatever-star, which requires some updates. Here is an updated version which works on Rakudo 2012.03 to 2012.05.

[/perl-6] Permanent link