#!perl -l substr($@.=$ARGV[$|--],-1)x=substr$@,$_,1for 0..$$;print substr$@,0,pop |
Without the $$ trick
#!perl -l substr($@.=$ARGV[$|--],-1)x=substr$@,$_,1for 0..500;print substr$@,0,pop |
#!perl -l $@.=($.=$ARGV[$_%2])x(substr$@,$_,1 or$.)for 0..500;print substr$@,0,pop |
By the way, using $$ in the for loop can create a randomly wrong output... :-)
#!perl -l substr($@.=$ARGV[$|--],-1,1)x=substr$@,$_,1for 0..$$;print substr$@,0,pop |
#!perl -l $@.=($.=$ARGV[$_%2])x(substr($@,$_,1)||$.)for 0..500;print substr$@,0,pop |
#!perl -l ($@.=$ARGV[$|--])=~s/.$/$&x substr$@,$_,1/efor 0..500;print substr$@,0,pop |
#!perl -l eval'$_.=$ARGV[$|--];s/.$/$&x substr$_,$i++,1/e;'x500;print substr$_,0,pop |
#!perl -l $@.=$ARGV[$|--],substr($@,-1,1)x=substr$@,$_,1for 0..$$;print substr$@,0,pop |
#!perl -l $_.=$ARGV[$|--],s/.$/$&x substr$_,$i-1,1/ewhile$i++<500;print substr$_,0,pop |
#!perl -l $@.=$ARGV[$|--],substr($@,-1,1)x=substr$@,$_,1for 0..500;print substr$@,0,pop |
#!perl -l eval'($_.=$ARGV[$|--])=~s/.$/$&x substr$_,$i++,1/e;'x500;print substr$_,0,pop |
#!perl -l $@.=$ARGV[$_%2]x(substr($@,$_,1)||$ARGV[$_%2])for 0..500;print substr$@,0,pop |
#!perl -l $@.=$ARGV[$|--],substr($@,-1,1)x=substr$@,$_,1 for 0..500;print substr$@,0,pop |
#!perl -l $a.=$ARGV[$|--],substr($a,-1,1)x=substr$a,$_,1 for 0..500;print substr$a,0,pop |
#!perl -l
do{$_.=$ARGV[$|--];s/.$/$&x substr$_,$i,1/e}while($i++<500);print substr$_,0,pop
|
$j is a work-around for the case where $ARGV[0] is 1
#!perl @a=@ARGV;$z.=$a[$|--]x(substr($z,$i++,1)||$a[$j++])for 1..250;print substr$z,0,$a[2] |
#!perl -l $"="";@_=(@ARGV[0,1])x500;$_[$_]x=substr"@_",$_,1for 0..@_;print substr"@_",0,pop |
ah something original!
#!perl -l
for(0..500){$a.=$ARGV[$|--];substr($a,-1,1)x=substr($a,$_,1) }print substr$a,0,pop
|
#!perl -l $"="";@a=(@ARGV[0,1])x500;$a[$_]x=substr"@a",$_,1 for 0..@a;print substr"@a",0,pop |
#!perl -l
$"=$_;@a=(@ARGV[0,1])x500;$a[$_]x=substr("@a",$_,1)for 0..@a;print substr"@a",0,pop
|
Shortening the unorthodox...
#!perl -l $,=pop;$a=\substr$_="@ARGV "x$,,0,$,;s/(.) /$+x substr$_,$i++,1/ewhile$i<$,;print$$a |
#!perl -l @a=@ARGV;$z.=$a[$|--]x(substr($z,$i++,1)||$a[$j++])for 1..250;print substr$z,0,$a[2] |
#!perl -l @a=@ARGV;eval'$z.=$a[$|--]x(substr($z,$i++,1)||$a[$j++]);'x250;print substr$z,0,$a[2] |
Shortening the unorthodox...
#!perl -l $c=pop;$a=\substr$_="@ARGV "x$c,0,$c;eval's/(.) /$+x substr$_,$i++,1/e;'x500;print$$a |
I was bored of using substr at the end. Notice how $@ shrinks and grows, and the final print is still OK.
#!perl -l $_=\substr$@=1x pop,0;$@="";substr($@.=$ARGV[$|--],-1)x=substr$@,$_,1for$"..500;print$$_ |
First working try...
#!perl @a=@ARGV;$z.=($a[$|--])x(substr($z,$i++,1)||$a[$j++])for 1..250;print substr($z,0,$a[2]),$/ |
#!perl -l $c=pop;@a=($ARGV[0])x$ARGV[0];push@a,($ARGV[--$|])x($a[$_]||$ARGV[1])for 1..500;print@a[0..$c-1] |
trying another approach
#!perl @a=(($ARGV[0])x$ARGV[0],$ARGV[1]);splice@a,@a-1,0,($ARGV[--$|])x$a[$_]for 1..500;print@a[0..(pop)-1] |
Ok, I am submitting most of my tests... :-)
#!perl -l
$a=((shift).shift)x200;for(0..200){substr($a,$j,1)x=$c=substr$a,$_,1;$j+=$c};print substr$a,0,pop
|
trying another approach (fixed)
#!perl -l @a=(($ARGV[0])x$ARGV[0],$ARGV[1]);splice@a,@a-1,0,($ARGV[--$|])x$a[$_]for 1..500;print@a[0..(pop)-1] |
#!perl -l
$b=pop;$a=((shift).pop)x200;for(0..200){substr($a,$j,1)x=$c=substr$a,$_,1;$j+=$c};print substr$a,0,$b
|