in reply to Call .. Call ... Call ..
So here goes for this one :
This defines the sub called x .sub x{(caller())[ob-//]}
Thus all the following subs: ob , fu , sc, etc..., that are only calling this x sub are in fact returning their own line numbers .
At the end comes the definition of the _ function :
$% is equal to zero .sub _{ vec($_,$%,d_)=eval"$%x$_[$%]"; print chr vec($_,$%,d_) }
this is really 4a beacause &fu is defined at line 4 ._(&fu.a)
is really in this case eval"0x4a" , since $_[$%] is subscript zero to @_, which is hex number 4a which is the ascii code for "J" ...eval"$%x$_[$%]";
Lastly comes the vec stuff which is really just plain obfu , since what _ really does is print chr of 4a : you can replace the first vec call by a simple assign to $_, and then just print chr $_ . The vec is a binary way of storing the hex value to print.
The _ is then called multiple times on the appropriate hex values, each time printing the correct letter with chr :
Note that in this last line &ob is used, while in the definition of the sub x it is plain ob that is used in ob-// returning -1 and not 2 for some unclear reason ..._(&fu.a) calls on 4a -> J _(&te.&sc) calls on 75 -> u _(&te.&ob) calls on 73 -> s _(&te.&fu) calls on 74 -> t _(&ob-//.$%) calls on (3-1).'0' that is 0x20 -> Space
Phew ! Wicked !
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Call .. Call ... Call ..
by cristian (Hermit) on May 27, 2005 at 13:34 UTC | |
|
Re^2: Call .. Call ... Call ..
by jdalbec (Deacon) on May 28, 2005 at 14:05 UTC |