[comp.lang.perl] Request for JAPH collection

arielf@taux01.nsc.com (Ariel Faigon) (12/05/90)

Hello JAPHs,

One of the best ways to learn a programming language is by examples.
A good example is one which:
	1. Is short
	2. Does something that is known or familiar (you already know what
	   it does, what is left to master is merely the technique)

It follows that one of the best routes to get acquainted
with perl is by looking at Randal's "Just another, Perl hacker" one liners.
Each of these tiny programs reveals another feature or construct of the
language, and they're all semantically equivalent.

Alas, I haven't collected them when they appeared here.
Can some kind soul, post a collection of JAPHs, I'm sure many of us
who missed it will benefit from such posting.

Tom, your tutorial is very nice, thanks,
what do you think of a tutorial which consists mainly of JAPHs ?

Thanks again.
-- 
Ariel Faigon, CTP group, NSTA
National Semiconductor (Israel)
6 Maskit st.  P.O.B. 3007, Herzlia 46104, Israel   Tel. (972)52-522312
arielf@taux01.nsc.com   @{hplabs,pyramid,sun,decwrl} 34 48 E / 32 10 N

tchrist@convex.COM (Tom Christiansen) (12/06/90)

Glad you liked the old slides.  Those were for the short-course (90
minutes) that I gave in D.C. last USENIX.  The tutorial this time should
be much more extensive, although it still won't be comprehensive.
Perhaps someday I'll give an "Advanced PERL" course.

My tutorial at USENIX this January is going in include this as an
appendix.  It's the JAPH from about the first half of comp.lang.perl; I
petered out after a while, but I know where I left off so can continue at
will.


--tom

From merlyn@iwarp.intel.com (Randal Schwartz) 1 Feb 90 22:28:58 GMT
@a=split(/(\d)/,"4Hacker,2another3Perl1Just");shift(@a);%a=@a;print "@a{1..4}";
=================================
From Andrew.Vignaux@comp.vuw.ac.nz (Andrew Vignaux) 22 Aug 90 11:10:18 GMT
print grep(s/.*\t//,sort n grep($_=++$i/-50."\t$_",split(/\n*/,<<JAPH)));
,rekcah lreP rehtona tsuJ
JAPH
=================================
>From merlyn@iwarp.intel.com (Randal Schwartz) 29 Aug 90 19:14:54 GMT
print pack("c*",(32..127)[42,85,83,84,0,65,78,79,84,72,69,82,0,48,69,82,76,0,72
,65,67,75,69,82,12])
=================================
Date:         6 Feb 90 22:31:17 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print grep(s/^\d+(.*)/$1 /, sort(split(/ /,"8hacker, 4Perl 1Just 2another")));
=================================
Date:         5 Feb 90 18:08:59 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
%_=split(/(\D+)/,"7Perl6another8hacker,5Just");print"@_{5..8}";
=================================
From:         merlyn
print pack('C25', grep($_ && $_ -= 256, split(/(\d\d\d)/, <<STRANGE)));
330373371372288353366367372360357370288336357370364288360353355363357370300
STRANGE
=================================
Date:         11 Feb 90 20:32:28 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
for (unpack('C25', 'Just another Perl hacker,')) {
	printf "%03d", $_ + 256;
}
$_="wHFG NABGURE cREY UNPXRE,";y/a-zA-Z/N-ZA-Mn-za-m/;print;
=================================
Date:         15 Feb 90 23:01:59 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_="Just another Perl hacker,";for$i(1..length){print substr($_,$i-1,1);}
=================================
Date:         18 Feb 90 19:05:13 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print pack('C25', reverse unpack('C25', ',rekcah lreP rehtona tsuJ'));
=================================
Date:         21 Feb 90 18:13:49 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print reverse split(/\/*/,",rekcah lreP rehtona tsuJ");
=================================
Date:         21 Feb 90 20:51:25 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
echo Just another Perl hacker,|perl -e 'print$1if($_=<STDIN>)=~/^(.*)/;'
=================================
Date:         23 Feb 90 19:01:21 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)

format STDOUT =
@<<< @<<<<<< @<<< @<<<<<,
$Just, $another, $Perl, $hacker
.
for("Just","another","Perl","hacker"){eval"\$$_=\$_;";};write;
=================================
Date:         23 Feb 90 19:04:55 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$,=' ';print grep(s/^.//, sort "2another","4hacker,","1Just","3Perl");
=================================
Date:         23 Feb 90 23:23:53 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@a=split(/X*/," ,JPacehklnorstu");print@a[2,15,13,14,0,4,10,11,14,7,6,12,0,3,6,12,9,0,7,4,5,8,6,1
2,1];
=================================
Date:         27 Feb 90 17:33:57 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
Subject:      Re: more termcap.pl problems & a quick question
In-reply-to:  pem@frankland-river.aaii.oz.au (Paul E. Maisano)
Organization: Stonehenge; netaccess via Intel, Beaverton, Oregon, USA
Newsgroups:   comp.lang.perl


In article <1172@frankland-river.aaii.oz.au>, pem@frankland-river (Paul E. Maisano) writes:
| sub p {
|      local($str) = @_;
|      $str =~ s/([\000-\037])/"^".pack("c", ord($1)+0100)/eg;
|      print $str;
| }
[well, he said more than that, but that's the important part... :-]

how about handling DEL too?

sub unctrl {
	local($_) = @_;
	s/([\000-\037\177])/'^'.pack('c',ord($1)^64)/eg;
	$_;
}

print &unctrl("\000\002\n\r\027ABC\177"),"\n";

results in:

^@^B^J^M^WABC^?

print &unctrl("Just another Perl hacker,");
-- 
/=Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ==========\
| on contract to Intel's iWarp project, Beaverton, Oregon, USA, Sol III      |
| merlyn@iwarp.intel.com ...!any-MX-mailer-like-uunet!iwarp.intel.com!merlyn |
\=Cute Quote: "Welcome to Portland, Oregon, home of the California Raisins!"=/

=================================
Date:         27 Feb 90 17:48:36 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
for (split(/(.)/,"Just another Perl hacker,")) {print if $_;}
=================================
Date:         28 Feb 90 01:32:25 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@a=<;echo Just another Perl hacker,>; print join(" ",@a);
=================================
Date:         28 Feb 90 01:51:32 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
mkdir("/tmp/$$",0777); chdir "/tmp/$$";
grep(open(X,">$_"),"1Just","2another","3Perl","4hacker,");
print join(" ",grep(s/^.//,<*>)); chdir ".."; system "rm -rf $$";
=================================
Date:         28 Feb 90 02:03:37 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = <<END; s/../pack('C',hex($&))/ge; print;
4a75737420616e6f74686572205065726c206861636b65722c
END
=================================
Date:         28 Feb 90 16:09:35 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$\="hacker,";$,="another ";print"Just ","Perl ";
=================================
Date:         28 Feb 90 22:45:45 GMT
From:         tneff@bfmny0.UU.NET (Tom Neff)
@a=split(//,'1111211111131223311361214223121412311341121111222123616111111122'.
'21233212615112114212321211121111222123321120');for$r(@a){for(1..$r){vec($s,$i,
1)=$v;$i++;}$v^=1;}print"$s\n";
=================================
Date:         1 Mar 90 06:27:25 GMT
From:         jgreely@giza.cis.ohio-state.edu (J Greely)
print reverse(split(/!?/,join(' ',sort split(/ /,"tsuJ rehtona lrep ,rekcah"))));
=================================
Date:         1 Mar 90 17:06:10 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
for('Snobol','Perl'){print"Just another $_ hacker,\n";}
=================================
Date:         5 Mar 90 17:39:29 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
pipe(R,W);if(!fork){exit print W"Just another Perl hacker,";}close(W);print<R>;
=================================
Date:         6 Mar 90 11:07:32 GMT
From:         Andrew.Vignaux@comp.vuw.ac.nz (Andrew Vignaux)
@l = split (/(..)/,'1a7r4J1n0a7e7c1o8n248o1t4u8v4s7.207l27547a7n7g1h'.
'0 511e3h7.8i564t3a6P1r7p8c8e6e3c3k7e3e533r7r286r6l4 6 1 8,7l7 3,');
srand; $_=3*int(rand(2))+2; /^$_/;
foreach (split(//,&g)) {/^$_/;print &g;} print "\n";
sub g {join('',grep(s/^.//,grep(//,@l)));}
=================================
Larry>   for(split(//,'))*))91:+9.*4:1A1+9,1))2*:..)))2*:31.-1)4131)1))2*:3)"'))
Larry>   {for(ord){$i+=$_&7;grep(vec($s,$i++,1)=1,1..($_>>3)-4);}}print"$s\n";
Larry> And a special version just for Randal:
Larry>   grep(do{for(ord){$i+=$_%8;grep(vec($s,$i++,1)=1,5..($_>>3||print"$s\n"));}},
Larry>   (@x=split(//,"))*))91:+9.*4:1A1+9,1))2*:..)))2*:31.-1)4131)1))2*:3)\7")));
=================================
Date:         6 Mar 90 18:08:23 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
open(C,"|uncompress");$_=<<EOF;s/../pack('C',hex($&))/ge;print C $_;
1f9d904aeacca103228c9b3774d094910302ca423620d08419b366210b05
EOF
=================================
Date:         6 Mar 90 21:36:52 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print $_ x (($_ = "just another Perl hacker,") =~ s/j/J/);
=================================
Date:         7 Mar 90 05:58:52 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_="kheauroes ,rJttParn lhc e";srand(1);
while($a=length){$a=rand($a);print(substr($_,$a,1));substr($_,$a,1)="";}
=================================
Date:         7 Mar 90 18:12:26 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)

open(M,"/usr/games/lib/quiz.k/morse") || die "morse: ($!)";
while(<M>) {next unless /([A-Z]):(.*)/; $m{$2}=$1;} close(M);
print grep($_ = ($m{$_} || $_), split(/([^-.])/,<<EOF)); exit 0;
.--- ..- ... -/.- -. --- - .... . .-./.--. . .-. .-../.... .- -.-. -.- . .-.,
EOF
=================================
Date:         26 Mar 90 16:20:37 GMT
From:         raymond@sunkist.berkeley.edu (Raymond Chen)
$_='x"Not ";"x\"another \";\'x\\"perl \\";x\\"hacker,\\"\'"';s/x/print/g;eval eval eval;
=================================
Date:         10 Mar 90 01:44:00 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
for($i=129600;@x=gmtime($i),(print substr('Just another Perl hacker,',$x[5]*12+$x[4]-840,1)),($i+
=2639520)<66117600;){;}
=================================
Date:         10 Mar 90 01:55:18 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
printf "%c"x 25,74,117,115,116,32,97,110,111,116,104,101,114,32,80,101,114,108,32,104,97,99,107,1
01,114,44;
=================================
Date:         11 Mar 90 01:03:06 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
%X=split(/(\d)/,'another2Perl4hacker,8Just1');sub X {$X{$a}<$X{$b}?-1:1;} print join(" ",sort X k
eys X);
=================================
Date:         11 Mar 90 16:56:40 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print join('',grep(s/.*"(.)".*/$1/,split(/\n/,<<)));
Gimme a "J"!
Gimme a "u"!
Gimme an "s"!
Gimme a "t"!
Gimme a " "! :-)
Gimme an "a"!
Gimme an "n"!
Gimme an "o"!
Gimme a "t"!
Gimme an "h"!
Gimme an "e"!
Gimme an "r"!
Gimme a " "! :-)
Gimme a "P"!
Gimme an "e"!
Gimme an "r"!
Gimme an "l"!
Gimme a " "! :-)
Gimme an "h"!
Gimme an "a"!
Gimme a "c"!
Gimme a "k"!
Gimme an "e"!
Gimme an "r"!
Gimme a ","! :-)
What's that spell??

=================================
Date:         13 Mar 90 20:00:26 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print +(split(//,'Just anoherPlck,'))[0..7,3,8..10,4,11,9,10,12,4,8,5,13,14,9,10,15];
=================================
Date:         20 Mar 90 01:21:37 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_=',Pr0e=kRcza0hb 5lOr+e"PE :rBe}hRtho]nhaj nt.s[u=J@';s/../unshift(a,$&)/eg;chop(@a);print@a;
=================================
Date:         17 Mar 90 18:30:39 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)

@ARGV=split(//,'Just another Perl hacker,');push(@x,'')while@x<@ARGV;
for$x($[..$#x){grep(*y=*_,$x[$x]);$y=shift;}print@x;

@ARGV=split(//,'Just another Perl hacker,');push(@x,'')while@x<@ARGV;
for$y(@x){$y=shift;}print@x;

=================================
Date:         17 Mar 90 22:34:02 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@X=split(//,'Just another Perl hacker,');*Y=*X;print @Y;
=================================
Date:         20 Mar 90 01:21:37 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_=',Pr0e=kRcza0hb 5lOr+e"PE :rBe}hRtho]nhaj nt.s[u=J@';s/../unshift(a,$&)/eg;chop(@a);print@a;
=================================
Date:         20 Mar 90 01:53:40 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print "Just another Perl hacker," x "1no time to write a cute signature";
=================================
Date:         20 Mar 90 20:35:16 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_='5O1v3v5y9)1b7u2q4x1i0e3u2"3S9n5w7s6&7o7h8k1l6k3u3/';s/(.)(.)/pack('C',ord($2)-$1)/eg;print;
=================================
Date:         20 Mar 90 23:33:06 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
eval <<EOF;
print "Just another Perl hacker,"
EOF
=================================
Date:         21 Mar 90 16:38:55 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_="7072696e7420274a75737420616e6f74686572205065726c206861636b65722c27";
s/../pack('C',hex($&))/eg; eval;
=================================
Date:         23 Mar 90 04:37:57 GMT
From:         raymond@hilbert.berkeley.edu (Raymond Chen)
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
=================================
Date:         24 Mar 90 22:36:53 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@a=split(//,",rkeacrl hher PeJust anot");print splice(@a,@a*2/3,@a*2/3+1)while@a;
=================================
Date:         27 Mar 90 00:25:41 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_=q(q-q:!print "Just another Perl hacker," :-) ;-7 while$_=eval
=================================
Date:         27 Mar 90 00:31:26 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
for(1..32){grep((print "${_}Just another Perl hacker,$_\r"),'-','\\','|','/');}
=================================
Date:         27 Mar 90 16:16:30 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@p=split(//,",rekcah lreP rehtona tsuJ");p:print pop(p);goto p if @p;
=================================
Date:         27 Mar 90 16:36:46 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$|=1;$_=<<'-- ';s#..#printf"%c",(fork?wait&&$?/256:exit hex($&))#eg;
4a75737420616e6f74686572205065726c206861636b65722c
=================================
Date:         28 Mar 90 16:12:34 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
open(STDERR,">&STDOUT");warn "Just another Perl hacker,\n"
=================================
Date:         28 Mar 90 18:06:57 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = "Just a sed user,";s/a/another/;s/sed/Perl/;s/user/hacker/;print
=================================
Date:         28 Mar 90 19:27:25 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_="reJ alounPt srhaetchr, ek";s/(..)(.)(..)/(print$2),$3.$1/eg;s/(.)(.)(.)/(print$2),$3.$1/eg;pr
int
=================================
Date:         28 Mar 90 21:35:44 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
($_="Just another Perl hacker,"); 0 while s#.# do {print $&;} #e,s/^1//;
=================================
Date:         30 Mar 90 19:18:27 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_=<<EOF;for$c(97..121){$x=sprintf("%c",$c);printf"%c",32+eval"y/$x/ /";}
ldhnxdqflccjgixntpttudphiwljotwvvqsoiifujkxcfxsjtsxahsgobxhbkwocoglgkj
vjiibdlqcjtgifhhvbpjqswfuxtjqudgcvsfdhufnsfxgjsvwxjjckgxpogktbkdgxpxkt
sillcoidtqkqcxnsoptdhgqhnjhkolojcgbxcipiniokdpdnhvuvwondpqgcudjiucgdli
llilclpsniuogqntvvbuwpdhdgvnbfaiplndubaipapwisjxocfuvsasjifdbcdtbtojfd
phpxidhbdavxpxpbidcfbaxwwvddbpscdccatxbpckhavtldtvlvsgbpvlqxolowbvcloa
jlfltiqwqqjafxlfpcgiqbxsvpgpvgsiblwgllvicfcifkulujvspoxklihaxkddnohidk
gfsffjtugalibsginvhbkikuawfpcgppvvdfpkocjsluvcqnskvtjuppkfglpbcbsvxqxi
opxwkovjhvqwojkfckqysxqsibbanxivcitctldvxilcvupxxldhnvsthocjcolhwqtwti
nitspguakklhgkjwvlfwddsvuuwixhqvjpgbjpjtbojanxwutxsvuvicdgnsikkqqbdthu
lwcasbqokhpwxskbqpcdlngqwnwqtbxpugafvnkhhbhscgusitstucvlubgilfaaulphlv
ohpogqwqoauqtbvboupwjpfhggvkkbsbcxiolqkppdiqltjnxnsnstdsosfupcyjxwgpqg
ahuscvvhohjxipcqwjxdwdusxwgyydatihdlbigusjqlpocdfpijvfhwuuggbtginttlxi
wcqklviatnjgbnslbhxbgxqwvqyfvxnxiulktwigvbbodwfqjkduopfyugjqqfhdxgqbjs
dupicidbqflkowtbnjqiwpqxpynibbiqhbagsuiqkpbfqnjyooswwchbqkpxqbwgxhkwoq
htokfhhjdsavpkdldlkndkcwcghybhpcsocdwboqtnilvkwqvtxdwadbjqihjfdtgksblk
aaddbwhalcdgtgblbhdsvnxcuqqbfldhkjfghdpvtnxsnoipfcvslxicolwfxbjbcnbwgo
vlvhfcqcjonddjttdcsgxxiulvljsjsiuhhfwpkocngspoxdjsykwpofgplkncopvcwlgq
xscfxpfiidtghbxspjcbjuuuhnvqwviuciobkapaxbisdnixjsakqsahlfihtlqxsfjgbo
xaptdwcvlgohpvggoujoogjcobjwwugkfdbklhghuuthcbksdqcvcgatokqcdichpiwbjc
buxyhwhnuxkiqwivdbgpvjqfuditkplfcsjjkflohigswtdjtahfclqkxouvabxfotbuhf
tbfqlqkibvagngkuvwnpjcqhpowfqhuaoqccdlupdwosvupxqbvqpkihvftwfbsodsyjgp
hhbxhwfhkiadlwfwxunbhuqppbhjguctjldfoqtgkllcllxtxxklxwdtcdhklxusxjcixg
EOF
=================================
Date:         2 Apr 90 18:45:15 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@A=split(/\n/,<<'-- ');$A[9-$b-($b>5)]=~s/\*/vec($_,8*length($`)+$b-1,1)=1/eg while++$b<9;print;
                         
**** ******* **** ****** 
 ************ ***********
.........................
 ***    *  * * *       * 
*     ** *      * *  *  *
 * *  *** *   * *     * *
* *   **   *   *    ** * 
 **  * *  *   *    ****  
-- 
=================================
Date:         3 Apr 90 22:44:56 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@ARGV=split(/\S\n?/,<<EOF);$a+=length(shift),vec($_,$a,1)=1while@ARGV;print;
 :-)  :-)   :-)  :-)  :-)  :-) :-) :-)  :-) :-)   :-) :-) :-)    :-)  :-) :-)
 :-)       :-)   :-)     :-) :-)   :-) :-) :-)  :-) :-)  :-) :-) :-) :-)  :-)
 :-)    :-)  :-) :-) :-)     :-)  :-) :-)  :-)  :-)   :-) :-)   :-)   :-) :-)
 :-)       :-)       :-)  :-)  :-)  :-)   :-) :-)   :-)   :-) :-) :-)    :-)
 :-)  :-) :-)       :-)      :-)  :-) :-)  :-)     :-) :-)  :-) :-)    :-) :-)
  :-) :-)  :-)  :-) :-)  :-)  :-)   :-) :-)   :-)   :-) :-) :-)    :-) :-)  :-)
EOF
-- 
=================================
Date:         3 Apr 90 22:40:40 GMT
From:         raymond@wish-bone.berkeley.edu (Raymond Chen)
$x=split(/( )/,'Not another perl hacker,');$_=q$x$x$x;s$x$print shift(@_)$eg;
=================================
Date:         4 Apr 90 03:02:23 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@_=("Just another Perl hacker," =~ /(.*) (.*) (.*) (.*)/);print"@_";
=================================
Date:         10 Apr 90 02:18:38 GMT
From:         tneff@bfmny0.UU.NET (Tom Neff)
system qq|perl -e 'system qq!echo Just another ANSI Perl hacker,!'|
=================================
Date:         11 Apr 90 08:46:10 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
eval q(eval q-eval q:print"Just another Perl hacker,"  :-)
=================================
Date:         16 Apr 90 15:58:21 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_='987;s/^(\d+)/$1-1/e;$1?eval:print"Just another Perl hacker,"';eval
=================================
Date:         17 Apr 90 00:20:39 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
@L = split(/ /, <<EOL); eval '$'.pop(@L).'='.@L while @L;
zero one two three four five six seven eight nine
EOL
for (split(/\s+/,<<"EOF")) { printf "%c",$_; }
$seven$four $one$one$seven $one$one$five $one$one$six $three$two
$nine$seven $one$one$zero $one$one$one $one$one$six $one$zero$four
$one$zero$one $one$one$four $three$two $eight$zero $one$zero$one
$one$one$four $one$zero$eight $three$two $one$zero$four $nine$seven
$nine$nine $one$zero$seven $one$zero$one $one$one$four $four$four
EOF
=================================
Date:         18 Apr 90 13:47:12 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_=",rekcah lreP rehtona tsuJ";s/.$/eval 'print $&',""/e while length
=================================
Date:         19 Apr 90 23:21:03 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print grep($_=sprintf("%c",exp($_)),split(/\s+/,<<'-- '));
4.311 4.766 4.749 4.758 3.481 4.580 4.705 4.714 4.758 4.649 4.620 4.741 3.481
4.388 4.620 4.741 4.687 3.481 4.649 4.580 4.600 4.677 4.620 4.741 3.795
=================================
Date:         27 Apr 90 14:55:59 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = "cker,rl haer PeanothJust "; s/(.{5})$/(print$1),""/e while length
=================================
Date:         27 Apr 90 19:12:09 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = <<EOF; s/(\d\d)(\d\d)\s*/substr(($!=$1,"$!"),$2,1)/eg; print;
J0204020301020103042001060101010202060107010801031300010701080210
0103020604200205150401070108,
EOF
=================================
Date:         27 Apr 90 21:02:12 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = <<EOF; s#[-+]\d+#pack('C',$c+=$&)#eg; print;
+74+43-2+1-84+65+13+1+5-12-3+13-82+48+21+13-6-76+72-7+2+8-6+13-70
EOF
-- 
=================================
Date:         30 Apr 90 21:03:34 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_="Just_another_Perl_hacker,";open(_,">$_");print<$_*>;unlink;
=================================
Date:         2 May 90 16:44:45 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = "Jvtu bopuifs Pfsm ibdlfs,"; y/a-z/za-y/; print
=================================
Date:         6 Apr 90 17:09:14 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
sub _{$b-$a;}print((split(//,",rekcah lreP rehtona tsuJ"))[sort _ 0..24])
=================================
Date:         18 Apr 90 23:02:31 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_='vec(1,1,1); print substr($_ ^ "<\020\020\134\021M_CEA^RP\042\014\034\030\000\033\024\001\030\
021\000\004",0,25)'; eval
=================================
Date:         18 Apr 90 23:02:31 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_='vec(1,1,1); print substr($_ ^ "<\020\020\134\021M_CEA^RP\042\014\034\030\000\033\024\001\030\0
21\000\004",0,25)'; eval
=================================
Date:         19 Apr 90 17:18:27 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print ('Just ','anoth','er Pe','rl ha','cker,')[0..4]
=================================
Date:         2 May 90 16:44:45 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = "Jvtu bopuifs Pfsm ibdlfs,"; y/a-z/za-y/; print
=================================
Date:         15 May 90 16:02:24 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
open(P,"|perl");print P"format=\nJust another Perl hacker,\n.\nwrite"
=================================
Date:         22 May 90 21:41:18 GMT
From:         flee@shire.cs.psu.edu (Felix Lee)
@a=split(//,$]);@b=split(//,"k ple th\nhroeaarcn.");$k=$#a=$#b;@a=sort grep($_.=$k++,@a);print@b[substr(pop(@a),1,2)-$#b]while(@a);
=================================
Date:         25 May 90 15:29:25 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_=pack("c25",65..90);y/A-Y/Just another Perl hacker,/;print
=================================
Date:         26 May 90 00:00:37 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
sub isplit { # &isplit(word,string) => array
	local($word,$_) = @_;
	local(@ind,@result,$start,$end);
	@ind = (0);
	s#$word#push(ind,length($`),length($`.$&)),$&#ieg;
	push(ind,length);
	# @ind now has pairs of indicies (0-origin) into $_
	# that bound the non-$word items; convert into result:
	while (@ind) {
		$start = shift(ind);
		$end = shift(ind);
		push(result,substr($_,$start+$[,$end-$start));
	}
	@result;
}
print &isplit("z","JzuZsztZ zaZnzoZtzhZezrZ zPZezrZlz ZhzaZczkZezrZ,");
=================================
Date:         5 Jun 90 19:07:58 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$,=" "; print +("hacker,","Just","Perl","another")[1,3,2,0];
=================================
Date:         14 Jun 90 06:38:52 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
open(o,"|cat");print o "Just another Perl hacker,"
=================================
Date:         15 Jun 90 01:37:14 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print `perl -e 'print STDERR "Just another Perl hacker,"' 2>&1`
=================================
Date:         15 Jun 90 16:15:31 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = <<'-- '; s/../printf "%c",hex($&)/ge;
4a75737420616e6f74686572205065726c206861636b65722c
-- 
=================================
Date:         15 Jun 90 22:06:24 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
printf "%s %s %s %s%c", 'Just', 'another', 'Perl', 'hacker', 44
=================================
Date:         16 Jun 90 19:22:20 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print <;echo Just another perl hacker,>
=================================
Date:         18 Jun 90 07:49:28 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = "Just another Perl hacker,"; { redo if s/./(print $&),""/e; }
=================================
Date:         18 Jun 90 15:53:11 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print "Just another Perl hacker," if "you can't think of anything better..."
=================================
Date:         20 Jun 90 17:51:58 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_ = <<'-- '; s/../pack("c",hex($&))/eg; eval;
7072696e7420224a75737420616e6f74686572205065726c206861636b65722c22
-- 
=================================
Date:         25 Jun 90 20:58:27 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
%_=split(/(\D+)/,"4Perl1Just8hacker,2another");print"@_{sort(keys(_))}"
=================================
Date:         26 Jun 90 18:02:43 GMT
From:         bill@ksr.com (Bill Mann)
$_="another Just hacker $]".`ps c$$`;@_=split;print"@_[1,0,$#_,11,13,2],\n";
=================================
Date:         27 Jun 90 00:20:08 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
%_=@_=("Perl","hacker,");print"@_[!print 'Just '] @_{(keys _)[!print 'another ']}"
=================================
=================================
Date:         28 Jun 90 17:57:59 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print "$ARGV[push(@ARGV,'Just another Perl hacker,')]"
=================================
Date:         30 Jun 90 21:11:02 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
for("hacker","Perl","another","Just"){substr($x,0,0)="$_ ";}substr($x,-1,1)=",";print$x
=================================
Date:         1 Jul 90 18:24:21 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
print grep($_=pack("c",hex($_)),unpack("A2"x 25,"4a75737420616e6f74686572205065726c206861636b65722
c"))
=================================
Date:         1 Jul 90 22:55:10 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$x=25;print substr(',rekcah lreP rehtona tsuJ',$x,1) while --$x >= 0
=================================
Date:         3 Jul 90 00:19:58 GMT
From:         raymond@bosco.berkeley.edu (Raymond Chen)
$_="-|";open _||print"creaJklrnue  osrhptt,aeh ";while(<_>){$}=5;s/(.{$}})(.)/(print$2),$1/eg whil
e--$};print;}

=================================
Date:         5 Jul 90 17:18:01 GMT
From:         merlyn@iwarp.intel.com (Randal Schwartz)
$_="cker,rl haer PeanothJust ";1 while s/(.{5})(.{5})?/$_{$2}=$1,$2/e;print while $_=$_{$_};
--
Tom Christiansen		tchrist@convex.com	convex!tchrist
"With a kernel dive, all things are possible, but it sure makes it hard
 to look at yourself in the mirror the next morning."  -me

merlyn@iwarp.intel.com (Randal Schwartz) (12/06/90)

In article <109884@convex.convex.com>, tchrist@convex (Tom Christiansen) writes:
| My tutorial at USENIX this January is going in include this as an
| appendix.  It's the JAPH from about the first half of comp.lang.perl; I
| petered out after a while, but I know where I left off so can continue at
| will.

[my JAPH's deleted]

Yow!  Some of those are pretty convoluted!  I can't remember doing
half of those.  Paper-tape!  Buried in a sea of characters!  Wow!  I
was pretty smart once. :-)

So, to continue the tradition... :-)

print pack("u","\327=\0\206\353\364\242\\\200\302\\\254\2\210\c\256\\\214"."\0"x 24)
-- 
/=Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ==========\
| on contract to Intel's iWarp project, Beaverton, Oregon, USA, Sol III      |
| merlyn@iwarp.intel.com ...!any-MX-mailer-like-uunet!iwarp.intel.com!merlyn |
\=Cute Quote: "Intel: putting the 'backward' in 'backward compatible'..."====/

gnb@bby.oz.au (Gregory N. Bond) (12/07/90)

My all time favourite JAPH was one that Larry did.  It basically
greped through /usr/spool/news/comp/lang/perl/* until it found one of
Randal's articles, and then eval'ed the last few lines.  Genius.

That MUST go in the collection!

Greg.
--
Gregory Bond, Burdett Buckeridge & Young Ltd, Melbourne, Australia
Internet: gnb@melba.bby.oz.au    non-MX: gnb%melba.bby.oz@uunet.uu.net
Uucp: {uunet,pyramid,ubc-cs,ukc,mcvax,prlb2,nttlab...}!munnari!melba.bby.oz!gnb

carl@udwarf.tymnet.com (Carl Baltrunas & Cherie Marinelli 0.1.9) (12/08/90)

In article <GNB.90Dec7092308@leo.bby.oz.au>, gnb@bby.oz.au (Gregory N. Bond) writes:
> 
> My all time favourite JAPH was one that Larry did.  It basically
> greped through /usr/spool/news/comp/lang/perl/* until it found one of
> Randal's articles, and then eval'ed the last few lines.  Genius.
> 
> That MUST go in the collection!
> 
> Greg.
> --
> Gregory Bond, Burdett Buckeridge & Young Ltd, Melbourne, Australia
> Internet: gnb@melba.bby.oz.au    non-MX: gnb%melba.bby.oz@uunet.uu.net
> Uucp: {uunet,pyramid,ubc-cs,ukc,mcvax,prlb2,nttlab...}!munnari!melba.bby.oz!gnb

So, where is it?

-Carl


 Carl A Baltrunas - Catalyst Art, Cherie Marinelli - Bijoux
 {sumex, apple}!oliveb!tymix!tardis!udwarf!{carl or cherie}
 {carl or cherie}%udwarf@tardis.tymnet.com
 {carl or cherie}@udwarf.tymnet.com