Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Encoding wonders

by virtualsue (Vicar)
on Jun 13, 2001 at 01:16 UTC ( #87940=note: print w/ replies, xml ) Need Help??


in reply to Encoding wonders

For whom does this JAPH work, and why? It outputs nothing but a newline with perl 5.6 & 5.005_03 on Sun Solaris 2.6, 2.7 & 8.
Given that you've indicated in a previous [id://85311\node] (a followup to another JAPH/obfu that failed in the same way here) that this is more or less your platform, that's a little puzzling.


Comment on Re: Encoding wonders
Replies are listed 'Best First'.
Re: Re: Encoding wonders
by srawls (Friar) on Jun 13, 2001 at 04:52 UTC
    Humm, it works on my Sun Solaris 5.7. Make sure that the first line is not blank, this should appear before any new lines:
    die unless print keys %j and open uc sqrt hex chr lstat;
    If that doesn't work, I'll try to see what else might be wrong.

    Update: Oh yeah, Perl version 5.005

    The 15 year old, freshman programmer,
    Stephen Rawls

      Works for me (Sun Solaris 5.7).
      #First line, does as you said; #uc sqrt hex chr lstat evals to 0, and open w/ string #appends $ in front, so it opens $0, aka, yourself die unless print keys %j and open uc sqrt hex chr lstat; #~~<0>; 0 is the filehandle, so it reads in one line #...the two negations(~~) cancel each other out, by the way #You assign to @_, ignoring q, y, i, x, d, ;, and % #(since, I presume, they aren't in the string you print out) @_[0..100] = grep{!/[qyixd;%]/}split//,~~<0>; #Simple enough, set output sep., to rec. sep, i.e., \n $\=$/; #Here's where the magic takes place. print substr join( #First, you map the @_ array that you assigned to for #values 0..46; you sort them w/ z sub, dereferencing them #And then you map them, again dereferencing $&, map{$$_[$[]} sort{z($$a[1])<=>z($$b[1])} map{[$_[$_],$_]}0..46),23; #This function (taking your ref. to ref. to match, divided # by ref. to ref. to ref. to match plus 1..$=, i.e., 1..60 #You've arranged it so as to pop the values you need to to #get the correct result; It's difficult to figure out at #first glance, however, so I'll leave it for someone else #to inform us of. sub z {@h[18,28,6,12,13,20,3,23,33,35,0,10,1,9,5,32,4,8,39,45, 29,14,15,40]= (1+\\///\\\//..$=);$h[pop];}
        Works for me (Sun Solaris 5.7).

        If and only if you execute the code in one particular way. The day after I complained about this particular JAPH, I discovered that it would only work if run as perl japh. In your node, you explained why:

        so it opens $0
        I should have read his node more carefully, it also contains a strong hint regarding how it has to be run.
        I don't understand why it opens itself. Why does opening "a string" append a $ and then treat it as a variable?

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2015-08-01 00:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls