Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Destructive JAPH

by MidLifeXis (Prior)
on Aug 29, 2013 at 14:48 UTC ( #1051452=obfuscated: print w/ replies, xml ) Need Help??

Starting my foray into JAPH to explore various aspects and corners of the language. Not necessarily obfuscated, but more using different aspects of Perl to accomplish the goals of a JAPH. 4x79 code max, Just another Perl hacker, output to stdout. I am hoping to explore a different technique each day, but it will probably devolve to one a week.

This implementation is pretty obvious how it works, but it uses the DESTROY method of object destruction to output the characters of the output.

@x = map{ x($_) } split('','Just another Perl hacker,'); shift(@x) while @x; sub x{ bless \$_[0],"x"} sub x::DESTROY{print ${$_[0]}}

--MidLifeXis

Comment on Destructive JAPH
Select or Download Code
Re: Destructive JAPH
by Grimy (Pilgrim) on Sep 03, 2013 at 18:04 UTC

    I wish you good luck on your journey through the darkest corners of Perl.

    Hereís a golfed and obfuscated JAPH using the DESTROY trick:

    sub'DESTROY{print${+pop}}bless\$_,for',rekcah lreP rehtona tsuJ'=~/./g

    The second argument of bless defaults to ::main, which is the package where subs declared without a package prefix go to. You donít need the temporary array: the SVís are still created and blessed even if map is used in void context (other built-ins, like sort, wonít let you do this). This causes them to be GCíd in reverse order, though.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: obfuscated [id://1051452]
Approved by hdb
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (10)
As of 2014-09-16 22:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (51 votes), past polls