Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Encoding wonders

by dimmesdale (Friar)
on Jun 14, 2001 at 21:49 UTC ( #88529=note: print w/replies, xml ) Need Help??

in reply to Re: Re: Encoding wonders
in thread Encoding wonders

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];}

Replies are listed 'Best First'.
Re: Re: Encoding wonders
by virtualsue (Vicar) on Jun 17, 2001 at 02:27 UTC
    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.
Re-2: Encoding wonders
by John M. Dlugosz (Monsignor) on Jun 15, 2001 at 00:47 UTC
    I don't understand why it opens itself. Why does opening "a string" append a $ and then treat it as a variable?
      From the perlfunc::open section of the site(aslo the perl manpages):
      If EXPR is omitted, the scalar variable of the same name as the FILEHANDLE contains the filename.
      That means that if an open is called like open 0 then 0 is the filehandle, and the "scalar variable" to open. Take, for instance, this example from perlfunc::open:
      $ARTICLE = 100; open ARTICLE or die "Can't find article $ARTICLE: $!\n"; while (<ARTICLE>) {...
      If your asking why, as in why is it that way, I'd presume its for brevity and ease, as in:
      $LOG = '/path/to/log/file/'; open LOG;
        It's probably one of those assume-for-you shortcuts that either didn't take off, nobody remembers anymore, or is from one of the source lanauges.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://88529]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2018-06-23 13:10 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (125 votes). Check out past polls.